繁体   English   中英

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

[英]How to disable cell editing of a Jtable displayed from a result set

嗨,大家好,我在显示表格后试图禁用表格编辑时遇到了问题。 我本来可以使用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的表),提到这样做也使他的程序无法编辑表。

拜托大家,我真的需要帮助...谢谢

我已经搜索并得到提示,我必须重写isCellEditable()

好建议。

但是,现在的主要问题是我的表是使用rs2xml显示的,因为我实际上是将数据库表的内容加载到JTable中

为什么会有问题呢? 您可以重写JTable的isCellEditable(...)方法。

另外,为什么您的代码具有do...while循环? 您只为JTable创建一个TableModel。 DBUtils代码将执行循环以从ResultSet中读取所有数据并创建TableModel。

...在显示表格后尝试禁用表格编辑。 我本来可以使用setEnabled的,但是我仍然希望该表是可单击的,因为我正在文本字段的帮助下显示和编辑其行的内容。

覆盖isCellEditable()不应禁用单击单元格或选择单元格。 它只是防止单元格被编辑。

我已经搜索并得到提示,我必须重写isCellEditable()或使用DefaultTableModel。 但是,现在的主要问题是我的表是使用rs2xml显示的,因为我实际上是将数据库表的内容加载到JTable中。

这与是否可以覆盖和禁用编辑无关。

这是我的代码段,用于显示结果集中的表格:...

片段没有太大帮助。 请发布一个最小的代码示例程序 ,不需要数据库。

我尝试使用默认表模型...我尝试过这样的事情:

这段代码对我来说毫无意义,主要是因为您要创建一个DefaultTableModel对象,然后立即忽略它-为什么? 然后,您使用的是我们不了解的DbUtils类,因此无法为您提供帮助。

关于覆盖isCellEditable()的问题,有人问了类似的问题(但没有显示带有rs2xml的表),提到这样做也使他的程序无法编辑表。

除了将您引导到教程并寻求更多,更好的信息和代码之外,我还可以提供所有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM