2011-09-20 6 views
1

J'ai un TextField dans un formulaire. Ce TextField devrait avoir le focus par défaut, qui fonctionne bien. Maintenant, je voudrais que l'utilisateur soit conscient de cela et lui montrer, qu'il est à l'intérieur du TextField - donc le curseur TextField devrait être affiché et clignoter. Je n'ai trouvé que dans DefaultLookAndFeel. mais j'ai absolument aucune idée de comment l'appliquer à mon TextField.LWUIT - Afficher le curseur clignotant TextField, même si le champ est vide

Toute aide - et le code serait apprécié!


Voici un exemple. Je ne l'ai toujours pas travaillé.

public void search2() { 
    searchForm      = new Form(); 
    TextField searchArea = new TextField(); 
    searchForm.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); 
    searchForm.addComponent(searchArea); 
    searchArea.requestFocus(); 
    int i = Display.getInstance().getKeyCode(Display.GAME_FIRE); 
    searchArea.keyPressed(i); 
    searchArea.keyReleased(i); 
    searchForm.show(); 
} 

Qu'est-ce qui se passe est: le TextField se concentre, il peut être modifié directement, le mode « Abc » est montré, mais ce que je veux vraiment est de montrer à l'utilisateur le curseur, alors il sait qu'il est à l'intérieur du TextField . Cela ne se passe ... si quelqu'un pouvait me montrer un code de travail pour que ...

Répondre

0

La méthode drawTextFieldCursor a un paramètre graphique, donc la façon dont vous pouvez dessiner votre curseur est:

  1. TextField Derive
  2. Dans son public void paint(Graphics g), vous appelez drawTextFieldCursor après avoir défini les méthodes de dessin du graphique Paint de TextField.
+0

I triedpublic classe TF étend TextField { \t public void peinture (Graphics g) { \t gestionnaire UIManager = getUIManager(); \t manager.getLookAndFeel(). DrawTextField (g, this); \t \t manager.getLookAndFeel(). DrawTextFieldCursor (g, this); \t \t \t paintHint (g); Et modifié paintHint dans TextArea pour protected void paintHint (Graphics g) {, mais toujours pas de curseur clignotant. – Carl

+0

Dans le Javadoc il est dit que 'clignotant est manipulé simplement en évitant un appel à cette method.' –

+0

TF public class {TextField peinture \t public void (Graphics g) { \t gestionnaire UIManager = getUIManager(); \t manager.getLookAndFeel(). DrawTextField (g, this); \t paintHint (g); \t} \t} ne clignote pas non plus. Qu'est-ce que cela a fait: il supprime complètement le curseur - mais je le veux tous les temps – Carl

2

Vous souhaitez que le champ de texte soit en mode d'édition et non pour que le curseur de champ de texte s'affiche (ce qui se produit lors de l'édition). Utilisez requestFocus() pour vous assurer que le champ de texte a le focus utilisez quelque chose comme:

int i = Display.getInstance().getKeyCode(Display.GAME_FIRE); 
tf.keyPressed(i); 
tf.keyReleased(i); 
+0

S'il vous plaît voir mon édition, toujours pas fixé! – Carl

+0

C'est assez bizarre puisque je le vois clignoter dans presque toutes les applications. Par exemple. Dans la démo LWUIT, il clignote sans aucun hack ou patch pour le composant ciblé actuel. Je vous suggère de confirmer cela dans la démo de LWUIT, puis de placer un point d'arrêt dans LWUIT et de voir pourquoi le curseur n'est pas dessiné pour vous. Cela devrait être transparent. –

Questions connexes