Java Editierbare JCombobox event Keylistener für die Enter-Taste
Ich habe editierbare JCombobox und ich fügte keylistener für die combobox, die die editor-Komponente.
Wenn Benutzer drücken Sie "Enter key" und wenn es keinen text auf die editierbare combobox, die ich brauche, um die Anzeige message-box mit JOptinoPane. Ich habe getan notwendigen code in keyrelease event und es zeigt die Nachricht wie erwartet.
Problem ist, wenn wir mit der message box und wenn der Benutzer die enter-Taste drücken Sie die 'OK' - Taste von JOptionPane, combobox-editor keyevent feuert wieder. Aufgrund dieser, wenn Benutzer drücken Sie die Enter-Taste auf der message-box, JoptionPane zeigt kontinuierlich.
Irgendeine Idee, wie man dieses Problem lösen?
Beachten Sie, dass ich nicht verwenden können Action-listener für dieses.
InformationsquelleAutor Joe | 2012-12-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie bitte, ob dieser code hilft dir weiter!!!!
Meisten Menschen finden es schwierig, da diese casting.
schreiben
((JTextComponent) cmb.getEditor().getEditorComponent()).getText().isEmpty()
im Ereignis-listener würde Hinzugefügt haben einige Lesbarkeit, jedenfalls eine gute Lösung, hat mir sehr geholfen!InformationsquelleAutor Chand Priyankara
Wir hinzufügen müssen, um einen Tasten-listener für die Komponente, dass die combo-box verwenden, um die Bearbeitung.
Hoffe, dieser code hilft.
InformationsquelleAutor Aqeel Haider
diese macht mich nicht alle Sinne, dann verwenden ItemListener
nie KeyListener für
Swing JComponents
verwenden (Note that I can't use Action listener for this
.) KeyBindings statt,bemerken
ENTER key
implementiert ist, fürJComboBox
imAPI
standardmäßig überschreiben diese Aktion vonENTER key pressed
InformationsquelleAutor mKorbel
Eine Möglichkeit wäre, ersetzen Sie die KeySelectionManager-Schnittstelle mit Ihren eigenen. Sie ersetzen möchten, und die JComboBox.KeySelectionManager als es ist dafür verantwortlich, die eingegebenen char und gibt die Nummer der Zeile (als int), die ausgewählt werden sollte.
InformationsquelleAutor phcoding
Bitte überprüfen Sie die event-ascii-code durch
ev.getkeycode()
und prüfen, ob es eine Zahl oder ein Zeichen. Wenn es weder eine Zahl noch einen Charakter nichts zu tun.Wenn es das ist, was Sie wollen, dann tun Sie den Vorgang.
InformationsquelleAutor vichu