Komisches Verhalten: JCombobox mit KeyListener

MaikHSW

Aktives Mitglied
Hey zusammen.
Wie in meinem anderen Thread beschrieben bin ich gerade dabei,
einen EventListener für ein Auto-Vervollständigen zu implementieren.
Dabei bin ich jedoch über ein, für mich Phänomen, gestolpert.
Wenn ich die Combobox auf editable(true) stelle klappt es nicht.
Stelle ich sie auf false reagiert mein Listener wunderbar.
Ein ähnliches Verhalten wir in dem Thread http://www.java-forum.org/awt-swing-swt/17619-jcombobox-listener-binden.html beschrieben, jedoch nicht aufgelöst.
Könnt ihr mir das hier erklären warum dies passiert und wie man es lösen kann?

Auf Wunsch stelle ich gerne noch die entsprechende Klasse online, jedoch habe ich davon abgesehen da diese etwas größer ist.

Danke für eure Mühe.


Gruß
 
G

Gast2

Gast
Ja weil das Event bestimmt in der Combobox irgendwann consumed wird...

EDIT: Muss eventuell einen eigenen ComboboxEditor schreiben...

EDIT EDIT: Oder du machst sowas
Java:
		JTextField field = (JTextField) box.getEditor().getEditorComponent();
		field.getDocument().addDocumentListener(new DocumentListener() {
			
			@Override
			public void removeUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void insertUpdate(DocumentEvent e) {
				System.out.println(e);
				
			}
			
			@Override
			public void changedUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}
		});
 
Zuletzt bearbeitet von einem Moderator:

MaikHSW

Aktives Mitglied
Hey Wayne.
Einen eigenen ComboboxEditor? Warum dies?
Das mit dem consumed verstehe ich nicht so recht.

De Lösung mit dem JTextField kenne ich bereits, allerdings hat die für mich folgende Nachteile:
Der Kunde kriegt nicht direkt eine Übersicht der möglichen Namen (Meier, Meierschule, Meiermüller) sondern müsste deutlich mehr schreiben.
Dies könnte ich nur umgehen indem ich ein JTable Objekt laufend neu befüllen lasse.
Allerdings führt das wieder meine AutoVervollständigen Idee ad absurdum.
Somit ist das eigentlich keine praktikable Lösung.

Es muss ja auch mit der Combobox lösbar sein, denn wenn editable auf false steht klappt es ja.
Also muss es dort irgendwo eine Differenz geben die man sicher umgehen bzw. lösen kann.
Aber mein Java Wissen reicht für dieses Verständnis leider nicht aus.

Dennoch erstmal danke für deine Antwort.


Gruß
 
G

Gast2

Gast
Der Combobox Editor macht eben mit dem Event schon was... Und wenn er das Event consumed wirst du es nicht mehr erhalten...
 

MaikHSW

Aktives Mitglied
Hey.
Okay, durch die Änderung dieser Option scheint sie es zu nutzen.
Ja, aber dennoch muss es doch eine Möglichkeit geben dies zu umgehen, oder?
Sonst bliebe wirklich nur der Ansatz eines Textfeldes in Kombination mit einer Tabelle die laufend aktualisiert wird.
Das geht aber wieder an meine Performance und war so auch nicht vorgesehen....


Gruß
 
G

Gast2

Gast
Wie gesagt du kannst schauen wo das Event consumed wird(debuggen), einen eigenen Editor schreiben, oder die Variante von oben. Was gegen die spricht hab ich nicht verstanden. Oder du versuchst auf dem Textfeld mal den KeyListener zu registieren, aber das der DocumentListener macht eigentlich seine Aufgabe...
 

MaikHSW

Aktives Mitglied
Hey.
Danke für deine Antwort.
Also so weit reichen meine Debuggingkenntnissse nicht als das ich das debuggen könnte und wüßte wo es passiert.
Vermutlich wird es ja in der Ursprungsklasse consumed,
und die ist ja Java.
Also, was dagegen spricht ist folgendes:
Der Kunde hat eigene Kunden.
Dort hat er Anja Müller, Antje Müller, Anna Müllerhuse, Annika Müllermeier und so weiter.
Nun hat er den Fall das er nicht genau weiß, wie der Kunde heißt.
Irgendwas mit Mül fällt ihm ein.
Daher möchte er Mül eingeben und eine Übersicht der Kunden die damit beginnen.
Verstehst du nun was ich meine?
Daher muss ich mehrere zur Auswahl haben und nicht nur die AutoVervollständigen Funktion.
Ein eigener Editor ist für den Zweck wohl etwas oversized.
Verstehst du was ich meine?
Hast du weitere Ideen das umzusetzen?


Gruß



Maik
 
G

Gast2

Gast
Ich weiß was eine Autovervollständigung ist...
Aber jedes mal wenn er ein Buchstabe eingibt nimmst du einfach des was drin steht und suchst halt nach allen diesen Namen. Versteh dein Problem nicht! Das kannst du genau in dem DocumentListener machen.
Und warum soll ein eigener Editor oversized sein???
Man wächst mit seinen Aufgaben ;)... Durch debuggen lernt man schau einfach welches die Ursprungklasse ist und schau sie dir an. Wenn du sowas wie eine Autovervollständigung machen willst solltest du auch rausfinden was mit dem Event passiert...
 

sibianu

Mitglied
Warum die Mühe machen, das gibts schon im swingx, heisst AutoCompleteDecorator. ;)
Dann einfach:
Java:
AutoCompleteDecorator.decorate(comboBox);
und fertig
 
G

Gast2

Gast
Warum die Mühe machen, das gibts schon im swingx, heisst AutoCompleteDecorator. ;)
Dann einfach:
Java:
AutoCompleteDecorator.decorate(comboBox);
und fertig

Coole Sache kannt ich noch nicht...
Weißt du auch ob es auch geht ein JTextfeld zu nehmen und dort Autocompletion einzustellen, dass dann eine Liste unterhalb des jTextfiel dargestellt wird?
 
Zuletzt bearbeitet von einem Moderator:

Dit

Bekanntes Mitglied
Hallo Zusammen,

ich bin gerade bei der selben Sache und sehe, dass das Thema noch recht aktuell ist.
deinen Listener hängst du wie folgt an deine ComboBox:

Java:
cbBeispiel.getEditor().getEditorComponent().addKeyListener(new KeyListener() {

        @Override
        public void keyTyped(KeyEvent e){
          System.out.println("keyTyped");
        }

        @Override
        public void keyReleased(KeyEvent e){
          System.out.println("KeyReleased");
        }

        @Override
        public void keyPressed(KeyEvent e){
          System.out.println("KeyPressed");
        }
      });

mein Problem ist jedoch, dass ich über einen Regulären Ausdruck abfrage, weil der Benutzer nur Zahlen eingeben kann. Die Meldung der JOptionPane springt auch auf, jedoch ist der falsche Buchstabe dann bereits in der ComboBox, diesen falschen Buchstaben bekomme ich nicht mehr gelöscht! Daher fand ich die Idee mit dem Document Listener ganz gut.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Komisches Verhalten des JavaFXprogrammes AWT, Swing, JavaFX & SWT 4
S JTabbedProblem - "komisches" Verhalten AWT, Swing, JavaFX & SWT 2
hdi Swing Komisches Problem mit TableModel & setAutoCreateRowSorter AWT, Swing, JavaFX & SWT 2
B Komisches Problem mit actionPerformed() AWT, Swing, JavaFX & SWT 2
A Beim Füllen von JList entsteht ein komisches Phänomen AWT, Swing, JavaFX & SWT 3
E transparenz (alpha) - komisches aussehen von textfeldern! AWT, Swing, JavaFX & SWT 2
S jList = komisches Ding! AWT, Swing, JavaFX & SWT 12
R JTable: komisches Klickverhalten AWT, Swing, JavaFX & SWT 2
Hatsi09 JavaFx Mediaplayer seltsames Verhalten AWT, Swing, JavaFX & SWT 0
T JavaFX JFrame verhalten wie JOptionPane (ErrorMessage) AWT, Swing, JavaFX & SWT 1
ralfb1105 Swing Frage zu SwingWorker Verhalten bei cancel() AWT, Swing, JavaFX & SWT 2
pkm kryptisches Verhalten bei GridLayout AWT, Swing, JavaFX & SWT 4
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
D Merkwürdiges Verhalten vom JMenu AWT, Swing, JavaFX & SWT 4
T JavaFX Verhalten ImageView bei grossen BIlddateien AWT, Swing, JavaFX & SWT 0
HarleyDavidson Swing Seltsames Verhalten GridBagLayout AWT, Swing, JavaFX & SWT 11
P JFrame langsam / seltsames Verhalten AWT, Swing, JavaFX & SWT 6
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
T Wie ist das "Lookup-Verhalten" von JList, JCombobox änderbar? AWT, Swing, JavaFX & SWT 4
D Seltsames Verhalten meiner CheckBoxen AWT, Swing, JavaFX & SWT 7
N Swing Dynamisches Verhalten bei Änderung Fenstergröße AWT, Swing, JavaFX & SWT 6
E Swing Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?! AWT, Swing, JavaFX & SWT 5
Ollek JTextField Verhalten mit LayoutManager AWT, Swing, JavaFX & SWT 8
E Swing Maskformatter Verhalten?! AWT, Swing, JavaFX & SWT 5
A JTreeTable - unerklärliches Verhalten von getValueAt AWT, Swing, JavaFX & SWT 2
F Merkwürdiges Verhalten zeichnen sperater Thread AWT, Swing, JavaFX & SWT 13
hdi SWT Shell: Auslagerung von Code verändert Verhalten AWT, Swing, JavaFX & SWT 6
U Verhalten des CheckBoxCellEditors AWT, Swing, JavaFX & SWT 3
H2SO3- AWT seltsammes verhalten eines Panels AWT, Swing, JavaFX & SWT 9
pinerski Swing JList merkwürdiges Verhalten beim sortieren AWT, Swing, JavaFX & SWT 3
I Hyper-Link ähnliches Verhalten AWT, Swing, JavaFX & SWT 5
L JFrame-Verhalten bei Klick auf Schließen-Kreuz ändern AWT, Swing, JavaFX & SWT 3
R JProgressBar-Verhalten AWT, Swing, JavaFX & SWT 5
dzim [SWT] Seltsames verhalten bei TableViewer mit TextCellEditor AWT, Swing, JavaFX & SWT 5
G Seltsames Verhalten JButton AWT, Swing, JavaFX & SWT 6
J JScrollBar scroll-Verhalten auf 2 JButtons umleiten? AWT, Swing, JavaFX & SWT 2
ARadauer bestimmtes verhalten für jtable AWT, Swing, JavaFX & SWT 6
M Merkwürdiges Verhalten von ListCellRender AWT, Swing, JavaFX & SWT 2
M Seltsames Verhalten Tooltip und JDialog AWT, Swing, JavaFX & SWT 8
S Wie verhalten sich transparente Grafiken? AWT, Swing, JavaFX & SWT 5
sparrow Tasten mit Umlauten im KeyListener verhalten sich seltsam AWT, Swing, JavaFX & SWT 4
S Seltsames verhalten des Befehles getContentPane().add(.) AWT, Swing, JavaFX & SWT 7
K JList - merkwürdiges Verhalten bei Leertaste (unter Focus) AWT, Swing, JavaFX & SWT 7
M drawImage mit seltsamen verhalten AWT, Swing, JavaFX & SWT 2
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
R JComboBox abfragen AWT, Swing, JavaFX & SWT 1
Esquid If Befehl bei JComboBox AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
D JComboBox Strings aus JTextFields zuordnen AWT, Swing, JavaFX & SWT 2
F JComboBox und Model AWT, Swing, JavaFX & SWT 10
I Editierbare JComboBox, die nur Ganzzahlen als Eingabewerte zulässt AWT, Swing, JavaFX & SWT 3
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
D Swing JCombobox Aktion löscht Grafik AWT, Swing, JavaFX & SWT 1
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
D Swing JCombobox Weiße Leerzeilen AWT, Swing, JavaFX & SWT 10
G JComboBox: Arrow-Button permanent anzeigen AWT, Swing, JavaFX & SWT 4
D Swing Java JComboBox Example AWT, Swing, JavaFX & SWT 16
K Swing JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 4
D Swing "blaues" Element aus JComboBox erhalten AWT, Swing, JavaFX & SWT 6
F JComboBox und Einträge AWT, Swing, JavaFX & SWT 3
gamillton Swing JComboBox mit extra Inhalt + breiteres Popupmenü AWT, Swing, JavaFX & SWT 0
T JPanelsteuerung mit JComboBox AWT, Swing, JavaFX & SWT 5
N Swing Duplikate im Jcombobox vermeiden AWT, Swing, JavaFX & SWT 15
L Swing JComboBox kann nicht erstellt werden! AWT, Swing, JavaFX & SWT 2
C JComboBox Objecte übergeben und Eintrag auswählen AWT, Swing, JavaFX & SWT 3
M Swing JComboBox mit Laufwerksbuchstaben (Windows) AWT, Swing, JavaFX & SWT 6
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
M Alle Schriftarten in JComboBox AWT, Swing, JavaFX & SWT 5
M Swing JComboBox eigenes Design AWT, Swing, JavaFX & SWT 3
Sin137 JComboBox mit Generics AWT, Swing, JavaFX & SWT 14
R JComboBox erweitern AWT, Swing, JavaFX & SWT 5
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
V Editierbare JComboBox AWT, Swing, JavaFX & SWT 2
D Swing JCombobox in einem JTable vorbelegen AWT, Swing, JavaFX & SWT 4
F neuen Menüpunkt in jcombobox einfügen AWT, Swing, JavaFX & SWT 1
F Swing Jcombobox mit manueller Rückgabe AWT, Swing, JavaFX & SWT 4
W JComboBox auffristen nach Listenänderung AWT, Swing, JavaFX & SWT 20
S JComboBox mit mehreren Spalten? AWT, Swing, JavaFX & SWT 6
J JComboBox + ItemListener AWT, Swing, JavaFX & SWT 12
T Swing jComboBox auslesen mit Datenbankanbindung AWT, Swing, JavaFX & SWT 3
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
D Swing Erstes Item einer JCombobox in JTable anzeigen AWT, Swing, JavaFX & SWT 2
N JComboBox in JTable [Swing] -> totaler UI-Einsteiger AWT, Swing, JavaFX & SWT 3
H Swing jComboBox Ausgabe -1/null AWT, Swing, JavaFX & SWT 4
C Arrow Farbe bei JComboBox AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
S JComboBox UTF-8 Codierung zuweisen AWT, Swing, JavaFX & SWT 5
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
S JComboBox nach auswahl erneuern AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben