2009-05-22 9 views
4

Comment changer la couleur d'un texte spécifique uniquement dans la zone de texte pour les applications Blackberry?Modifier la couleur d'un texte spécifique uniquement dans la zone de texte de BlackBerry

+0

Voulez-vous dire TextField? TextBox fait partie de lcdui de J2ME, dont vous ne pouvez pas changer l'apparence. – Fostah

+0

Oui, je voulais dire TextField seulement. Vous voulez colorier spécifier un texte en couleur rouge, reste en couleur noire .... – iOSDev

Répondre

4

Comme l'a dit Fostah dans son commentaire, la classe TextBox est pas très flexible en termes de changer le look and feel. Même l'aspect et la convivialité de la plupart des classes "Field" sont assez difficiles à changer, aussi.

Cependant, si vous avez une certaine flexibilité et pouvez utiliser un champ tel que EditField (ou une variante de celui-ci) au lieu de TextBox, alors il devrait être juste de surcharger la méthode paint. Quelque chose comme:

protected void paint(Graphics graphics) { 
    graphics.setColor(Color.RED); 
    super.paint(graphics); 
} 
4

Avez-vous vérifié ActiveRichTextField? J'ai seulement utilisé RichTextField moi-même, mais il semble que ActiveRichTextField vous permet de spécifier des couleurs pour les régions de texte en plus des polices &. Il faut un peu de mise en place pour obtenir ces champs, mais consultez le javadoc pour RichTextField, il donne une très bonne explication.

Voici quelques exemples de code:

int offsets[] = new int[]{0, 5, 11}; 
Font[] fonts = new Font[]{Font.getDefault(), Font.getDefault()}; 
int bg[] = new int[]{Color.WHITE, Color.WHITE}; 
int fg[] = new int[]{Color.BLACK, Color.GREEN}; 
byte attributes[] = new byte[]{0, 1}; 

add(new ActiveRichTextField("Hello world", offsets, attributes, fonts, fg, bg, 0)); 
+0

J'ai essayé avec ActiveRichTextField. C'est en me donnant ce que je voulais parfait. Mais le champ de texte ci-dessus ne me permet pas l'édition de texte ... J'ai essayé de définir la propriété de ce ActiveRichTextField comme EDITABLE, mais cela n'a pas fonctionné ... – iOSDev

+0

Jazz, vous voulez que le champ soit éditable par l'utilisateur? ou par toi? et vous voulez que ce texte soit rouge? –

+0

Pat, je veux que la zone de texte soit modifiable par l'utilisateur. – iOSDev

6

Malheureusement, la réponse est rouler votre propre - il n'y a pas de contrôle de champ de texte modifiable qui permet de modifier la couleur de police du tout. La réponse de Mark Novakowski est un moyen standard de contourner cela, mais changera tout le texte en une seule couleur. Si vous ne craignez pas de prendre en charge le clavier SureType de style Pearl, vous pouvez remplacer keyChar sur ActiveRichTextField et ajouter manuellement des caractères au texte dans ActiveRichTextField. Pour les champs SureType, la réponse est encore pire: vous n'avez pas un accès de bas niveau aux API SureType (pour traiter correctement le pop-up prédictif) pour les téléphones non qwerty (la série Pearl), vous devez donc avoir recours à une véritable supercherie pour obtenir un champ de texte entièrement personnalisé pour fonctionner correctement sur ces appareils. Il peut arriver que plusieurs EditField soient disposés dans un gestionnaire, par exemple. un EditField remplacé pour afficher read (comme dans la réponse de Marks). L'astuce sera de créer et d'ajouter dynamiquement des champs de texte si nécessaire.

Oui, parfois l'API RIM facilite les choses faciles, et les choses difficiles presque impossible.

Questions connexes