Java Modifiable JCombobox Keylistener événement pour Entrer la clé
J'ai modifiable JCombobox et j'ai ajouté keylistener pour combobox composant de l'éditeur.
Lorsque l'utilisateur appuyez sur la touche Enter' et si il n'y a pas de texte sur la zone de liste déroulante modifiable j'ai besoin d'afficher de message de la boîte à l'aide de JOptinoPane. J'ai fait le code nécessaire dans keyrelease événement et il affiche le message comme prévu.
Problème est, quand nous arrivons à la zone de message et si l'utilisateur appuyez sur la touche enter sur le bouton 'OK' de JOptionPane, combobox éditeur keyevent déclenche à nouveau. De ce fait, lorsque l'utilisateur presse la touche Enter sur la boîte de message, JoptionPane affiche en permanence.
Une idée de comment résoudre ce problème?
Remarque que je ne peux pas utiliser l'Action d'un écouteur pour cela.
OriginalL'auteur Joe | 2012-12-27
Vous devez vous connecter pour publier un commentaire.
Merci de vérifier si ce code vous aide à vous!!!
La plupart des gens trouvent qu'il est difficile à cause de ce casting.
écrit
((JTextComponent) cmb.getEditor().getEditorComponent()).getText().isEmpty()
dans l'écouteur d'événement aurait ajouté un peu de lisibilité, de toute façon, la bonne solution, m'a beaucoup aidé!OriginalL'auteur Chand Priyankara
Nous avons besoin d'ajouter un écouteur sur le composant de la zone de liste déroulante à l'aide de service de l'édition.
Espère que ce code permet de.
OriginalL'auteur Aqeel Haider
cela ne fait pas de moi aucun sens, puis de l'utiliser ItemListener
de ne jamais utiliser KeyListener pour
Swing JComponents
, l'utilisation (Note that I can't use Action listener for this
.) Les raccourcis clavier au lieu de cela,avis
ENTER key
est mis en œuvre pourJComboBox
dansAPI
par défaut, de remplacer cette action deENTER key pressed
OriginalL'auteur mKorbel
Une option serait de remplacer le KeySelectionManager interface avec votre propre. Vous souhaitez remplacer le JComboBox.KeySelectionManager comme il est responsable de la prise de la saisie char et retourne le numéro de ligne (int) qui doit être sélectionné.
OriginalL'auteur phcoding
Veuillez renseigner sur le code ascii par
ev.getkeycode()
et vérifier si c'est un nombre ou un caractère. Si ce n'est ni un nombre, ni un personnage ne rien faire.Si c'est ce que vous voulez, puis effectuez la procédure.
OriginalL'auteur vichu