Ich habe eine JComboBox, die editierbar ist. Wenn ich jetzt einen Wert eingebe und ENTER drücke, habe ich den Eindruck, es werden zwei Events ausgelöst. Warum ist das so?
Ich lese also den Eintrag der JComboBox als String ein, und versuche eine Zahl zu parsen, falls sie zu Beginn des Strings liegt. (denn ich habe solche Einträge wie "255 - Text").
Handelt es sich um keine Zahl, soll die Exception geworfen werden. Leider wird Sie 2x geworfen. Ausgabe ist also:
hmmm.. komisch, oder?
[edit]: "System.outs" klarere Bezeichner gegeben
Code:
JComboBox cbDebug = new JComboBox;
cbDebug.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try {
String s = (String)cbDebug.getSelectedItem();
s.trim();
int index = s.indexOf(" ");
if (index != -1)
s = s.substring(0, index);
System.out.println("step - 1!");
Integer num = new Integer(s);
System.out.println("step - 2!");
model.updateMessages(log.filterMessages(num.intValue()));
System.out.println("step - 3!");
}
catch (NumberFormatException numex) {
//TODO Error Dialog
System.err.println("*ERROR* - No Number entered!");
}
catch (Exception ex) {
//TODO Error Dialog
System.err.println("*ERROR* - Something went wrong!");
}
}
});
Ich lese also den Eintrag der JComboBox als String ein, und versuche eine Zahl zu parsen, falls sie zu Beginn des Strings liegt. (denn ich habe solche Einträge wie "255 - Text").
Handelt es sich um keine Zahl, soll die Exception geworfen werden. Leider wird Sie 2x geworfen. Ausgabe ist also:
step - 1!
step - 1!
*ERROR* - No Number entered!
*ERROR* - No Number entered!
hmmm.. komisch, oder?
[edit]: "System.outs" klarere Bezeichner gegeben