Java:JTable自动主键更新

时间:2011-02-15 15:07:32

标签: java swing jtable abstracttablemodel

我有这个JTable有一个AbstractTableModel作为它的模型。 初始内容被解析为二维数组Object,从ArrayList泛型到系统的Entity。同样在模型中,isCellEditable在数据完整性方面被覆盖。 设置模型后,我已经设置了一些带有指定swing对象的单元格编辑器。

我现在的问题是。一旦发生空行的更改,我怎么能填充表的列[0]。此外,一旦空行发生更新,另一个空行将自动添加到JTable。

我要使用TableModelListener吗?如何在不重置JTable模型的情况下实现它。

这很可能类似于Microsoft Access - 表格/查询的表单。

您的回复和评论将受到高度赞赏。

谢谢, Cyril H

2 个答案:

答案 0 :(得分:1)

  

我有这个JTable有一个AbstractTableModel作为它的模型。

AbstractTableModel不是表模型。您正在扩展AbstractTableModel以实现模型存储和其他需要实现的方法。

我只想使用DefaultTableModel。它已经实现了这些方法,它提供了一个addRow(...)方法,允许您动态增加模型中的行数。

  

我打算使用TableModelListener吗?

这是一种方式。每次单元格中的数据发生变化时,都会检查整行,看它是否已满。如果它是表中的最后一行,那么您可以在DefaultTableModel上调用addRow(...)方法来添加另一行。

答案 1 :(得分:0)

首先,不要在二维对象数组上工作,而是在POJO列表上工作。

您可以在此处查看我的一个简单示例代码: http://puces-samples.svn.sourceforge.net/viewvc/puces-samples/trunk/sessionstate-suite/sessionstate-sample/src/blogspot/puce/sessionstate/sample/ParticipantTableModel.java?revision=2&view=markup

您是否正在访问本地数据库?如果是,那么您可以直接在表模型中使用JPA实体。

如果您访问共享数据库,那么最好采用3层架构。在这种情况下,您可能希望使用不公开PK的DTO。