AleX
Erfahrenes Mitglied
hi,
stehe vor folgendem prob:
Also bei einer normalen JComboBox die nicht editable ist, kann man ja ganz einfach mit nem KeyListener den eingegebenen Buchstaben als char einlesen und das Pulldownmenue der cb aufklappen lassen und den ersten mit dem selben buchstaben anfangenden eintrag markieren.
Jetzt hab ich aber das problem, dass meine cb editable ist und ich überhaupt keine events bei drücken von tasten zurückbekomme.
Gut, dann hab ich mir gedacht dass das teil ja sowieso so mischmasch aus Textfield und button usw... also greif ich folgendermaßen drauf zu:
So kann ich zwar die eingaben wieder auslesen, weis jetzt allerdings wirklich nicht, wie ich es mache, dass der bei Übereinstimmtung das Pulldownmenue aufmacht und dort den entsprechenden eintrag markiert:
Fürs Verständnis:
ich geb ein:
"Au"
in meinem Pulldownmenue ist folgendes drin:
Aluminium
Oma
Auto
Autofahrer
usw.
und jetzt soll er bei der eingabe das pulldownmenue aufmachen und "Auto" markieren. Hätte ich nur "A" eingegeben sollte er schon bei Aluminium bleiben und dieses markieren.
Es würde mir anfangs auch reichen, wenn er das ganze nur nach einem Buchstaben dursuchen würde.
Hoffe es kann mir jemand weiterhelfen.
Schonmal danke im Vorraus
stehe vor folgendem prob:
Also bei einer normalen JComboBox die nicht editable ist, kann man ja ganz einfach mit nem KeyListener den eingegebenen Buchstaben als char einlesen und das Pulldownmenue der cb aufklappen lassen und den ersten mit dem selben buchstaben anfangenden eintrag markieren.
Jetzt hab ich aber das problem, dass meine cb editable ist und ich überhaupt keine events bei drücken von tasten zurückbekomme.
Gut, dann hab ich mir gedacht dass das teil ja sowieso so mischmasch aus Textfield und button usw... also greif ich folgendermaßen drauf zu:
Code:
JComboBox cb = new JComboBox(data);
Component comp = cb.getEditor().getEditorComponent();
comp.addKeyListener(new MyKeyListener() {
public void keyPressed(KeyEvent evt) {
char ch = evt.getKeyChar();
System.out.println(ch + " gefunden");
if (ch != KeyEvent.CHAR_UNDEFINED) {
cbClassification.showPopup();
}
}
});
So kann ich zwar die eingaben wieder auslesen, weis jetzt allerdings wirklich nicht, wie ich es mache, dass der bei Übereinstimmtung das Pulldownmenue aufmacht und dort den entsprechenden eintrag markiert:
Fürs Verständnis:
ich geb ein:
"Au"
in meinem Pulldownmenue ist folgendes drin:
Aluminium
Oma
Auto
Autofahrer
usw.
und jetzt soll er bei der eingabe das pulldownmenue aufmachen und "Auto" markieren. Hätte ich nur "A" eingegeben sollte er schon bei Aluminium bleiben und dieses markieren.
Es würde mir anfangs auch reichen, wenn er das ganze nur nach einem Buchstaben dursuchen würde.
Hoffe es kann mir jemand weiterhelfen.
Schonmal danke im Vorraus