Hallo zusammen,
ich möchte in einem Programm die Eingaben in Textfeldern schon beim Eintippen prüfen und dem Benutzer durch die Hintergrundfarbe der Eingabebox darüber Bescheid geben, ob die augenblickliche Eingabe ok ist oder nicht.
Bei einem JTextField geht das auch problemlos über setBackground(). Bei einer editierbaren ComboBox kriege ich es aber irgendwie nicht hin.
Laut diverser Postings und mehrer Quelltexte müßte es eigentlich gehen, wenn man per getEditor().getEditorComponent().setBackground() auf den Hintergrund der Basiskomponente des ComboBoxEditors zugreift.
Leider funktioniert das aber so überhaupt nicht. Ich kann zwar mit dem Debugger sehen, daß die Methode aufgerufen wird und irgendwo in den Tiefen ein BasicComboBoxEditor$BorderlessTextField seine Hintergrundfarbe gesetzt bekommt. Nur sehen kann ich davon nichts. Die Eingabebox behält ihre Standardfarbe bei, egal was ich mache.
Der Vollständigkeit halber noch ein Codeschnipsel:
Irgendwelche Tips?
ich möchte in einem Programm die Eingaben in Textfeldern schon beim Eintippen prüfen und dem Benutzer durch die Hintergrundfarbe der Eingabebox darüber Bescheid geben, ob die augenblickliche Eingabe ok ist oder nicht.
Bei einem JTextField geht das auch problemlos über setBackground(). Bei einer editierbaren ComboBox kriege ich es aber irgendwie nicht hin.
Laut diverser Postings und mehrer Quelltexte müßte es eigentlich gehen, wenn man per getEditor().getEditorComponent().setBackground() auf den Hintergrund der Basiskomponente des ComboBoxEditors zugreift.
Leider funktioniert das aber so überhaupt nicht. Ich kann zwar mit dem Debugger sehen, daß die Methode aufgerufen wird und irgendwo in den Tiefen ein BasicComboBoxEditor$BorderlessTextField seine Hintergrundfarbe gesetzt bekommt. Nur sehen kann ich davon nichts. Die Eingabebox behält ihre Standardfarbe bei, egal was ich mache.
Der Vollständigkeit halber noch ein Codeschnipsel:
Code:
jComboBoxFPSTrg.getEditor().getEditorComponent().addKeyListener( new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if (isReady) {
String s = (String)jComboBoxFPSTrg.getEditor().getItem();
double d = Core.getFPS(s);
Color c;
if (d>0) {
if ((int)Core.syncTimePTS(delayPTS,fpsTrg) != delayPTS || minTimePTS != (int)Core.syncTimePTS(minTimePTS,fpsTrg))
c = warnBgnd;
else
c = okBgnd;
fpsTrg = d;
} else
c = errBgnd;
jComboBoxFPSTrg.getEditor().getEditorComponent().setBackground(c);
}
}
});
Irgendwelche Tips?