bumperbox
bumperbox

Reputation: 10214

how to force cell editor in jtable to accept edits

i have a jtable with multiple editable cells

when someone presses the "save button" on the menu, it doesn't save the last value that is still currently being edited. (unless they tab out of the cell first)

i can check it is being edited by calling .isEditing() which returns true.

What i would prefer to do is trigger that the cell editing is complete, and it can show any validation errors, and if none, then save. (without the user having to tab out first)

can someone please point me in the right direction

thanks

Upvotes: 4

Views: 4022

Answers (3)

Sudhakar
Sudhakar

Reputation: 3180

when you have a jtable with multiple editable cells

when someone presses the "save button" on the menu, it doesn't save the last value then please add the below peace of code

The first is to have the table automatically stop editing and save the data. This can be done by setting a property on the table:

JTable table = new JTable(...);
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

It will make sure that when someone presses the any button on the menu, it saves the last edited value also.

Upvotes: 6

Mark Peters
Mark Peters

Reputation: 81054

You can manually call:

JTable table;
table.getCellEditor().stopCellEditing();

This should cause the table to stop editing at that cell. By overriding the stopCellEditing() method of your TableCellEditor and returning false under certain circumstances, you can indicate that the cell's value is currently invalid and thus editing cannot be stopped at that time.

Upvotes: 6

Sergii Zagriichuk
Sergii Zagriichuk

Reputation: 5399

If I remember correctly, edited/added value is present in cell editor component by default it is EditBox, BUT do not present in table model. If it is possible try to check cell editor component it should help you.

Upvotes: 1

Related Questions