大家好,我在尝试在显示表格后禁用表格编辑时遇到问题。我本来会使用 setEnabled,但我仍然希望表格可单击,因为我正在文本字段的帮助下显示和编辑其行的内容。
我已经搜索并得到提示,我必须重写 isCellEditable() 或使用 DefaultTableModel。然而,现在的主要问题是我的表是使用 rs2xml 显示的,因为我实际上是将数据库表的内容加载到 JTable 中。这是我的代码段,用于显示结果集中的表:
do {
//get the table...
attendanceTable.setModel(DbUtils.resultSetToTableModel(
} while (rs2.next());
rs2 是我的结果集。
我尝试使用默认表模型...我尝试了这样的事情:
do {
DefaultTableModel myTable = (DefaultTableModel)attendanceTable.getModel();
myTable.setModel(DbUtils.resultSetToTableModel(rs2));
} while (rs2.next());
但是给了我错误,因为defaultTableModel下没有setModel方法。这就是我通过使用 defaultTableModel 所理解的...
关于重写 isCellEditable(),有人提出了类似的问题(但没有使用 rs2xml 显示表格)提到这样做也会使他的程序无法编辑表格。
请大家帮忙,我真的需要帮助......提前致谢
最佳答案
i have searched and got hints that i have to override isCellEditable()
好建议。
However, the major problem now is that my table is displayed using rs2xml because i am actually loading contents of a database table into the JTable
为什么这是一个问题?您可以重写 JTable 的 isCellEditable(...)
方法。
另外,为什么你的代码有一个 do...while
循环?您只需为 JTable 创建一个 TableModel。 DBUtils 代码将执行循环以从 ResultSet 读取所有数据并创建 TableModel。
关于java - 如何禁用结果集中显示的 Jtable 的单元格编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25395999/