RC wrote:
> I found out if you editing a JTable cell without hit
> the Enter or Tab key. Then the new cell value won't take
> effect. For example, a table cell value is "abc" and
> you change it to "xyz".
The problem is, that in this case the cell editor's stopCellEditing()
method is not called. See also the API doc of CellEditor#stopCellEditing()
> Then when you read that table
> cell value, it still "abc". You MUST hit the Enter or
> Tab key, then you will get that table cell value as "xyz".
> How can I force that table cell value as "xyz" WITHOUT
> hit the Enter or Tab key?
You have to call your cell editor's stopCellEditing() method at appropriate
times (probably when the cell looses keyboard focus):
JTable yourTable = ...;
if (yourTable.isEditing())
yourTable.getCellEditor().stopCellEditing();
Or simpler: somewhere at the beginning you tell your JTable to do those
stopCellEditing calls automatically for you:
yourTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
--
Partager