java - 如何禁用结果集中显示的 Jtable 的单元格编辑

标签 java sql swing jtable resultset

大家好,我在尝试在显示表格后禁用表格编辑时遇到问题。我本来会使用 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/

相关文章:

java - SwingWorker 线程中的多线程

java - 属性更改列表器不调用 propertychangeevent 方法

java - 导致 POST 请求主体变空的过滤器

javax.persistence.TransactionRequiredException 错误 : jpa 2 + hibernate - Native Query

java - 用 Scanner 读取行

java - 为什么 Google Appengine 的图像 API 提供的图像方向不正确?

mysql - 使用 MySql 中的 if 语句打印带有条件约束的新列

java - 我如何触发 JPanel 显示在不同的应用程序中?

sql - Oracle - 为什么 SELECT * FROM Foo;太慢了?

sql - 是否可以将SQL注释添加到使用ORM构建的查询中?