Question

Je me demande quel composant est le mieux pour afficher des résultats de recherche rapides en swing. Je veux créer quelque chose comme ceci, créer un champ de texte dans lequel l'utilisateur peut saisir du texte. Lors de sa saisie, j'améliorerai la recherche rapide dans la base de données, et je souhaite afficher les données au-dessous de la zone de texte. pour parcourir les résultats et sur prés entrer le résultat sera affiché dans le tableau. Donc, ma question est la suivante: existe-t-il un composant qui possède déjà cette logique d’affichage? Ou est-ce pas, quelle est la meilleure façon de mettre en œuvre cela.

Cette recherche sera quelque chose que ajax me donnera sur le Web, même logique, même apparence, si possible sur une application de bureau.

Était-ce utile?

La solution

Cherchez-vous quelque chose comme un composant de saisie semi-automatique pour Java Swing?

SwingX possède un tel composant. Voir ici pour le JavaDoc. Il a beaucoup de méthodes utilitaires pour faire diverses choses, c’est-à-dire compléter automatiquement une zone de texte à partir du contenu d’une liste de lecture.

Autres conseils

Vous devez d'abord associer un écouteur au Document de JTextField pour être averti chaque fois que l'utilisateur saisit (ou le modifie) dans le champ.

À partir de là, vous pouvez utiliser n'importe quel code côté serveur requis. Les résultats de cela peuvent être utilisés pour mettre à jour une liste de sélection.

Quelques points à garder à l’esprit:

  1. Le code permettant d'effectuer la recherche sur le backend doit figurer dans un autre thread
  2. Le code qui met à jour la liste doit mettre à jour le modèle de la liste
  3. Vous devrez gérer tous les résultats de votre recherche de base afin de ne mettre à jour que la liste déroulante avec le résultat le plus récent (par exemple, le type d'utilisateur 'A', la recherche arrière pour ce résultat. Pendant ce temps, l'utilisateur a tapé 'C', Recherche de base "AC". Vous devez vous assurer que les résultats de la recherche "A" ne figurent pas dans la liste si les résultats de la recherche "AC" sont disponibles).

Je vous recommande vivement de consulter les listes vernissées . bibliothèques Java open source disponibles sur le marché, ce qui simplifie énormément le travail que vous posez.

Utilisez la recherche Hibernate.

The SwingHack ( http://oreilly.com/catalog/9780596009076/ ) livre a un exemple.

Dans l’intérêt de faire d’une pierre deux coups: ayez un fil d’indexation séparé. Cela va:

  1. Améliorez la vitesse des recherches à chaque fois qu'elles sont exécutées.
  2. Améliorez la réactivité de l'interface utilisateur, car l'indexation est effectuée dans un thread séparé.

Bien sûr, exactement la façon dont vous effectuez l'indexation variera considérablement en fonction de votre application. Voici un bon endroit pour commencer vos recherches: Indexation de la recherche . Et ignorez la référence à Web 3.0 [sic].

C'est possible bien sûr. C'est simple aussi. Pour la liste déroulante des termes, utilisez simplement le menu contextuel. C'est simple Le traitement en arrière-plan du texte saisi est également simple. Profitez!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top