2010-03-30 9 views
1

je voudrais permettre à un utilisateur de cliquer sur un JList et si les mots sont tapés, faites une requête et de faire avancer le curseur au prochain match (préfixe). Y a-t-il et un exemple d'une telle implémentation dans Java quelque part? Je pense une combinaison d'auditeurs clés, getNextMatch() et setSelectValue().défilement/recherche JList lorsque l'utilisateur commence à taper

Répondre

1

JXList de SwingLabs a exactement la même chose que vous cherchez

Essayez:

https://swinglabs-demos.dev.java.net/

+0

J'ai regardé la démo et il a un exemple de ce que je dois. Merci pour votre suggestion. Il semble que l'ingrédient magique est AutoCompleteDecorator.decorate (...). Cependant, il semble y avoir un problème avec cet exemple car il devient "collant". Si vous tapez quelque chose, il va au bon endroit, mais ensuite il reste "bloqué", ou perd le focus. Je dois cliquer sur la liste pour recommencer à travailler. Qu'est-ce qui ne va pas? – alex

+0

@alex Je ne vois pas le comportement que vous avez mentionné. J'ai essayé les démos en utilisant la version java « 1.6.0_17 » de Java et mise au point reste sur la liste, et me permet de continuer à taper quelque chose d'autre et les mouvements surligneur sur le texte correspondant à. –

+0

Bizarre, mais je pense que je comprends pourquoi. J'utilise 1.6.0_17 et quand vous tapez sur le tout JList est bien, si vous tapez sur le champ de texte, il ne disparaît pas. Donc, essentiellement, il continue à ajouter des lettres à la correspondance précédente, mais un tel mot n'existe pas et donc il ne bouge pas. Si vous effacez l'entrée précédente avec retour arrière cela fonctionne. Je prévois de cacher le champ de texte ... de toute façon – alex

1

Je vous suggère de jeter un oeil à glazed lists, ou d'autres implémentations d'achèvement en Java/Swing.