Hallo,
ich habe mit meinen ComboBoxen in meiner Tabelle ein Problem.
Ich habe ein eigenes TableModel und einen eigenen CellEditor.
Ich habe einige Spalten, darunter 2 ComboBoxen.
Ich validiere nach dem Klick auf einen Button ob in den ComboBoxen Werte ausgewählt wurden (der 1. Wert der Combobox ist ein "" Wert). Ist dies nicht der Fall, springe ich in die ComboBox, gehe in den Edit-Modus und verlasse diesen wieder um die Validierung inkl. Fehlermeldung in meinem CellEditor "anzuschmeissen".
Dabei beobachte ich nun folgendes:
In jeder Zeile ab der 2. Zeile wird in getValueAt in meinem TableModel beim "betreten" (table.editCellAt(row, realCol)) der ComboBox noch "" zurück gegeben. Dann wird der Editier-Vorgang beendet (table.getCellEditor().stopCellEditing()) und dann liefert aber
in meinem CellEditor.stopCellEditing() immer(!) den Wert aus der ComboBox meiner ersten Zeile zurück. Obwohl ich mich z.B. in Zeile 2 befinde. Das ist mit beiden meiner ComboBoxen so. Ich habe einen ähnlichen CellEditor für meine Text-Felder - dort habe ich das Problem nicht.
Wähle ich bewusst einen anderen Wert in der ComboBox aus, wird der ausgewählte Wert gesetzt. getCellEditorValue() liefert also nicht immer den Wert aus der 1. Zeile sondern nur in dem oben beschriebenen Fall.
Wie kann das sein? Was wird nach getValueAt noch ausgeführt was dieses Verhalten verursachen könnte? Wo könnte ich noch ein paar Breakpoints setzen?
Edit: es passiert auch, wenn ich der ComboBox den DefaultCellEditor zuweise. Es scheint also nicht am CellEditor zu liegen.
ich habe mit meinen ComboBoxen in meiner Tabelle ein Problem.
Ich habe ein eigenes TableModel und einen eigenen CellEditor.
Ich habe einige Spalten, darunter 2 ComboBoxen.
Ich validiere nach dem Klick auf einen Button ob in den ComboBoxen Werte ausgewählt wurden (der 1. Wert der Combobox ist ein "" Wert). Ist dies nicht der Fall, springe ich in die ComboBox, gehe in den Edit-Modus und verlasse diesen wieder um die Validierung inkl. Fehlermeldung in meinem CellEditor "anzuschmeissen".
Dabei beobachte ich nun folgendes:
In jeder Zeile ab der 2. Zeile wird in getValueAt in meinem TableModel beim "betreten" (table.editCellAt(row, realCol)) der ComboBox noch "" zurück gegeben. Dann wird der Editier-Vorgang beendet (table.getCellEditor().stopCellEditing()) und dann liefert aber
Code:
ComboBoxItem editingValue = (ComboBoxItem) getCellEditorValue()
in meinem CellEditor.stopCellEditing() immer(!) den Wert aus der ComboBox meiner ersten Zeile zurück. Obwohl ich mich z.B. in Zeile 2 befinde. Das ist mit beiden meiner ComboBoxen so. Ich habe einen ähnlichen CellEditor für meine Text-Felder - dort habe ich das Problem nicht.
Wähle ich bewusst einen anderen Wert in der ComboBox aus, wird der ausgewählte Wert gesetzt. getCellEditorValue() liefert also nicht immer den Wert aus der 1. Zeile sondern nur in dem oben beschriebenen Fall.
Wie kann das sein? Was wird nach getValueAt noch ausgeführt was dieses Verhalten verursachen könnte? Wo könnte ich noch ein paar Breakpoints setzen?
Edit: es passiert auch, wenn ich der ComboBox den DefaultCellEditor zuweise. Es scheint also nicht am CellEditor zu liegen.
Zuletzt bearbeitet: