Hallo Leute, ich arbeite seit längerer Zeit an einem Zeichenprogramm. Nun gibt es in einer Leiste eine ComboBox mit der die Stiftweite eingestellt werden kann. Aus gewissen Gründen, möchte ich, dass man nur maximal 500 einstellen kann. Das soll so aussehen, dass man z.B. 600 eingibt und er per FocusLost o.ä.* das ausliest und den Text auf 500 setzt. Hier mal nötiger Quelltext:
In ActionPerformed() steht:
Leider funktioniert dieses "setText()"(in Zeile 5) nicht - soll heißen, dass
ich im Debugger zwar 2 Variablen mit dem Wert "600" gefunden habe, aber die sich kein bisschen ändern.
Ich konnt sie finden unter "comboWidth-Editor-Editor-oldValue='600'" und "comboWidth.selectedItemReminder='600'"...
*Ich würde ja gerne so eine Art "OnChange"-Eregniss für den Text benutzen, aber den TextListener gibt es leider nicht für die ComboBox bzw. deren Textfield-Komponente gibt - jemand eine Idee?
Gruß, Thomas
Java:
private JComboBox comboWidth = new JComboBox();
...
String[] choosable = {"1", "2", "3", "4", "5", "7", "10", "15", "30", "50", "75", "100"};
comboWidth = new JComboBox(choosable);
comboWidth.setEditable(true);
((JTextField)comboWidth.getEditor().getEditorComponent()).setColumns(2);
comboWidth.addActionListener(this);
tempPanel.add(comboWidth);
In ActionPerformed() steht:
Java:
else if (evt.getSource() == comboWidth) {
try {
int test = Integer.parseInt(comboWidth.getSelectedItem().toString());
main.paintPanel.penWidth = (test > 500) ? 500 : test;
((JTextField)comboWidth.getEditor().getEditorComponent()).setText(test+"");
}
catch (NumberFormatException exc) {
main.paintPanel.penWidth = 1;
}
}
Leider funktioniert dieses "setText()"(in Zeile 5) nicht - soll heißen, dass
ich im Debugger zwar 2 Variablen mit dem Wert "600" gefunden habe, aber die sich kein bisschen ändern.
Ich konnt sie finden unter "comboWidth-Editor-Editor-oldValue='600'" und "comboWidth.selectedItemReminder='600'"...
*Ich würde ja gerne so eine Art "OnChange"-Eregniss für den Text benutzen, aber den TextListener gibt es leider nicht für die ComboBox bzw. deren Textfield-Komponente gibt - jemand eine Idee?
Gruß, Thomas