从 JTable 获取修改后的值



我有一个具有所需值的JTable。编辑单元格后,如果我使用 table.getvalue(行,列),我会得到以前未更改的值。但是,如果我在单击保存按钮之前选择另一个单元格,我会得到修改后的值。谁能帮我解决这个问题??

PS:我还没有为表添加任何操作侦听器

默认更新机制仅在单元格编辑器失去焦点时更改模型。跳出单元格或单击其他单元格都会导致重要的"焦点丢失"事件,从而触发模型更改

您可以添加ActionListener(请参阅 http://download.oracle.com/javase/tutorial/uiswing/components/textfield.html)。当您按 RETURN 时,它将被触发。在处理程序中,调用 fireEditStop() 以触发"复制到模型"代码(请参阅 http://download.oracle.com/javase/tutorial/uiswing/components/table.html#editor)。

或将以下代码添加到表中,

table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

尝试TableModel .

每个表对象

都使用表模型对象来管理实际的表数据。表模型对象必须实现表模型接口。如果程序员不提供表模型对象,JTable 会自动创建 DefaultTableModel 的实例。

表模型可以具有一组侦听器,每当表数据更改时,都会通知这些侦听器。侦听器是 TableModelListener 的实例。

你试过这个吗

int row=table.getSelectedRow();int column=table.getSelectedColumn();

table.getValue(row,Column)

如果是,则需要使用表模型

最新更新