Moltar
Mitglied
Hallo,
ich möchte in meinem Programm eine JComboBox verwenden, bei der man wahlweise einen Wert mit der Maus auswählen kann, oder durch Tastendruck zu einem passenden Wert springen kann.
Das habe ich auf zwei Varianten versucht:
und:
elemArray ist ein int[].
Die Auswahl mit der Maus funktioniert problemlos. Wenn ich aber per Tastendruck wählen will, dann funktioniert das nicht.
Beispiel:
Ich gebe 15 ein, bei Eingabe der 1 springt er zum nächsten Element, das mit 1 beginnt und gibt die Meldung "Test" aus.
Das gleiche passiert, wenn ich die JComboBox aufklappe und mit den Pfeiltasten durch die Elemente schalte.
Wenn ich die Ausgabe der Meldung aus dem Listener entferne, kann ich durch Eingabe von 15 zwar zum Element 15 springen, aber dann passiert logischerweise nichts mehr.
Wie kann man es realisieren, dass erst bei Auswahl eines Elements (durch Klick oder Enter-Taste) das Event ausgelöst wird und nicht schon beim Anspringen eines Elementes?
Grüße
Moltar
ich möchte in meinem Programm eine JComboBox verwenden, bei der man wahlweise einen Wert mit der Maus auswählen kann, oder durch Tastendruck zu einem passenden Wert springen kann.
Das habe ich auf zwei Varianten versucht:
Code:
JComboBox combo = new JComboBox(elemArray);
combo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getID()== ActionEvent.ACTION_PERFORMED) {
MyMessage.showInfo("Test");
}
}
});
Code:
JComboBox combo = new JComboBox(elemArray);
combo.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(e.getID() == ItemEvent.ITEM_STATE_CHANGED) {
MyMessage.showInfo("Test");
}
}
});
elemArray ist ein int[].
Die Auswahl mit der Maus funktioniert problemlos. Wenn ich aber per Tastendruck wählen will, dann funktioniert das nicht.
Beispiel:
Ich gebe 15 ein, bei Eingabe der 1 springt er zum nächsten Element, das mit 1 beginnt und gibt die Meldung "Test" aus.
Das gleiche passiert, wenn ich die JComboBox aufklappe und mit den Pfeiltasten durch die Elemente schalte.
Wenn ich die Ausgabe der Meldung aus dem Listener entferne, kann ich durch Eingabe von 15 zwar zum Element 15 springen, aber dann passiert logischerweise nichts mehr.
Wie kann man es realisieren, dass erst bei Auswahl eines Elements (durch Klick oder Enter-Taste) das Event ausgelöst wird und nicht schon beim Anspringen eines Elementes?
Grüße
Moltar