Comment faire un champ de texte pour la recherche(avec des conseils comme une recherche sur google)
Je veux faire une fenêtre de l'application pour PC, à l'aide de java swing. Je voudrais faire un champ de texte. Lors de la saisie pour le champ texte j'en ai besoin pour afficher des conseils en vertu de ce champ de texte. Et l'utilisateur peut sélectionner le texte à partir de la liste. De la même manière que la recherche sur google dans le navigateur. Donc, j'ai besoin de deux fonctions, la première est simple: filtrer un ensemble de chaînes par déjà tapé le texte. Mais comment faire pour les afficher dans une liste ?
EDIT1: j'ai besoin de la liste à être montré si il y a quelque chose à montrer après filtration et une capacité à sélectionner à l'aide des touches haut et bas. De même que la recherche google, mais sur l'application de PC.
OriginalL'auteur maximus | 2011-06-25
Vous devez vous connecter pour publier un commentaire.
JComboBox
est un choix commun pour cela.AutoCompleteJComboBoxer
est celle que j'ai essayé.OriginalL'auteur trashgod
Je vous suggère d'ajouter un DocumentChangeListener à votre component swing jtextfield pour surveiller l'insérer/supprimer/mettre à jour caractères:
Ont un look de cette tutoriel.
Maintenant que vous avez le texte tapé, filtre de votre ensemble de chaînes. Soyez prudent dans le choix d'un moyen efficace de stocker et de récupérer des chaînes à partir de la structure de données. Avec beaucoup de cordes à trier ce qui peut ne pas être trivial. (Je pense que ça va être dur de ce avec un ArrayList si vous définissez des chaînes si très gros.)
Je pense que vous pouvez utiliser un JLabel.
Sinon, vous pouvez essayer avec un JComboBox la mise en œuvre de votre propre ComboBoxModel. Je ne sais pas si il est possible de garder toujours ouvrir la liste déroulante.
générer la liste à part et de le montrer à l'intérieur de la jlabel.
+1 pour
JComboBox
.OriginalL'auteur Heisenbug
.... dans le component swing jtextfield , ajouter un écouteur pour l'événement keypress et puis dès qu'une touche est pressé d'obtenir , d'utiliser un ensemble de trier tous les éléments connexes. Une option est d'avoir la Chaîne de toChar pour l'obtention de chaque personnage et puis après les enregistrements dans la JList.
Deuxièmement , vous feriez mieux de garder vos documents dans un format XML puis le suivi sera plus facile reste tout type de tri logique de l'algorithme peut être facilement appliquée.
OriginalL'auteur Abhishek Choudhary