Comment créer un RichTextEdit
en utilisant l'API RIM 4.5 contenant du texte avec plusieurs couleurs?
Par exemple, je veux créer un RichTextEdit
comme suit:RichTextEdit avec un texte multicolore?
- Le texte est "Bonjour BB monde"
- "Bonjour" devrait être bleu
- "BB monde" devrait être rouge
- "BB" devrait être
ITALIC
- « Bonjour » devrait être
BOLD
Le principal problème est d'obtenir des couleurs, pas gras et en italique.
J'ai essayé de surcharger RichTextEdit.paint
fonction, mais cela formate la couleur de la chaîne entière, pas seulement une sous-chaîne de celle-ci!
Voici le code que je mis en œuvre pour rendre le texte en gras et en italique et en remplaçant la peinture pour changer toute la couleur de la chaîne:
public final class RichTextFieldSample extends UiApplication
{
public static void main(String[] args)
{
RichTextFieldSample theApp = new RichTextFieldSample();
theApp.enterEventDispatcher();
}
public RichTextFieldSample()
{
String richText = "This is how you create text with formatting!!!";
Font fonts[] = new Font[3];
int[] offset = new int[4];
byte[] attribute = new byte[3];
fonts[0] = Font.getDefault();
fonts[1] = Font.getDefault().derive(Font.BOLD);
fonts[2] = Font.getDefault().derive(Font.BOLD | Font.ITALIC);
offset[0] = 0;
attribute[0] = 2;
offset[1] = 4;
attribute[1] = 0;
offset[2] = 33;
attribute[2] = 1;
offset[3] = richText.length();
RichTextField rtField = new RichTextField
(richText, offset, attribute, fonts,
RichTextField.USE_TEXT_WIDTH) {
protected void paint(Graphics graphics) {
graphics.clear();
graphics.setColor(0x0000FF);
super.paint(graphics);
}
};
MainScreen mainScreen = new MainScreen();
mainScreen.setTitle(new LabelField
("RichTextFieldSample Sample",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH));
mainScreen.add(rtField);
pushScreen(mainScreen);
}
}
Pourriez-vous poster votre exemple de code qui définit la police en gras et en italique? Publiez également votre code qui remplace RichTextEdit.paint. –
Question mise à jour avec l'exemple de code que vous avez demandé –