Java 有没有一个通用的表格模型可以在JTables中使用?

Java 有没有一个通用的表格模型可以在JTables中使用?,java,swing,jtable,tablemodel,qabstracttablemodel,Java,Swing,Jtable,Tablemodel,Qabstracttablemodel,我现在正在研究JTables,并使用Hibernate+从DB中检索了一组业务对象 我喜欢SpringDataJPA处理DAL的所有繁琐实现,我想知道TableModel是否也有类似的功能 基本上,我会有以下几点: 公共类GenericTableModel扩展了AbstractTableModel GenericTableModel将使用反射和/或注释来查看T 这样的东西存在吗?我希望我不必为要在JTable上显示的每个对象都有一个TableModel。 只要有Bean风格的getter和set

我现在正在研究JTables,并使用Hibernate+从DB中检索了一组业务对象

我喜欢SpringDataJPA处理DAL的所有繁琐实现,我想知道TableModel是否也有类似的功能

基本上,我会有以下几点:

公共类GenericTableModel扩展了AbstractTableModel

GenericTableModel将使用反射和/或注释来查看T

这样的东西存在吗?我希望我不必为要在JTable上显示的每个对象都有一个TableModel。

只要有Bean风格的getter和setter,就可以将业务对象绑定到包括表在内的组件。


只要有Bean风格的getter和setter,就可以将业务对象绑定到包括表在内的组件。

我正在为Swing开发人员编写一个库。这是一项正在进行的工作。但我已经完成了你想要的。看看这个包中的类:

有关如何使用此功能的示例,请查看本课程-查看行号-70-85

我还没有把文件写好。但是如果你不关注任何事情,请在这里发表评论

更新-代码示例

您需要有2组属性文件

1 swingobjects-这提供了swingobjects框架的默认值。我的代码库中已经提供了该文件。只需将文件复制粘贴到类路径位置

2应用程序-这是您需要输入应用程序GUI文本/消息的地方。您必须为您需要的每个语言环境创建一个新的应用程序属性文件

最后,不是说

 @Column(index=0,name="Column 1",editable=true)
 private String column1;
您必须使用:

@Column(index=0,key="test.column1",editable=true)
private String column1;
将名称更改为键。这将使它读取资源包并搜索属性test.column1,而不是硬编码的列名

3 SwingObjTable是否需要实现hashCode和equals

如果整体使用Swing对象框架,则需要equals和hashcode。Swing对象框架允许您在模型类中为bean中的GUI元素设置数据,就像在MVC中一样。然后,如果bean的值发生了变化,框架会自动更新GUI。为了检查bean的值是否确实发生了变化,它需要调用equals方法。因此,您需要覆盖它。您可以让Eclipse为您生成这个。或者,如果框架中没有使用任何东西,那么就从那里调用super.equals

只要签出/克隆git repo,就可以访问TableDemo示例

git clone https://writetosethu@code.google.com/p/swingobjects/ 

我正在为Swing开发人员编写一个库。这是一项正在进行的工作。但我已经完成了你想要的。看看这个包中的类:

有关如何使用此功能的示例,请查看本课程-查看行号-70-85

我还没有把文件写好。但是如果你不关注任何事情,请在这里发表评论

更新-代码示例

您需要有2组属性文件

1 swingobjects-这提供了swingobjects框架的默认值。我的代码库中已经提供了该文件。只需将文件复制粘贴到类路径位置

2应用程序-这是您需要输入应用程序GUI文本/消息的地方。您必须为您需要的每个语言环境创建一个新的应用程序属性文件

最后,不是说

 @Column(index=0,name="Column 1",editable=true)
 private String column1;
您必须使用:

@Column(index=0,key="test.column1",editable=true)
private String column1;
将名称更改为键。这将使它读取资源包并搜索属性test.column1,而不是硬编码的列名

3 SwingObjTable是否需要实现hashCode和equals

如果整体使用Swing对象框架,则需要equals和hashcode。Swing对象框架允许您在模型类中为bean中的GUI元素设置数据,就像在MVC中一样。然后,如果bean的值发生了变化,框架会自动更新GUI。为了检查bean的值是否确实发生了变化,它需要调用equals方法。因此,您需要覆盖它。您可以让Eclipse为您生成这个。或者,如果框架中没有使用任何东西,那么就从那里调用super.equals

只要签出/克隆git repo,就可以访问TableDemo示例

git clone https://writetosethu@code.google.com/p/swingobjects/ 
GenericTable模型将使用反射来查看T

政府是这样做的

GenericTable模型将使用反射来查看T


默认表格模型就是这样做的。

DefaultTableModel有什么问题?DefaultTableModel有什么问题?发现它比BeansBinding更能说明问题,以及它们如何更好。此外,BeansBinding看起来是一个死项目,已被替换为。尽管如此,看起来我还是会给你一个机会,然后发布一条命令
我在这里听过了。我发现它谈论的是,以及它们如何比豆荚好。此外,BeansBinding看起来是一个死项目,已被替换为。尽管如此,看起来我还是会尝试一下,并在这里发表评论。我的朋友,看起来你在做一些很酷的事情,但我只有这么多时间开始运行,所以文档和简单的示例是必须的。我要试试看结果如何。这太酷了!有几个问题:1表格可以插入任何组件,对吗?JPanel、JScrollPane等,2我们可以控制列名吗?我的应用程序在几个语言中进行了本地化,3 SwingObjTable是否需要hashCode和equals来实现?可能是错误的,但是:从您的代码来看,模型似乎无法处理可变行对象,也就是说,如果任何行属性从外部以某种方式发生变化,它不会触发。这是正确的kleopatra。。事实并非如此。您需要调用model.setRowrow对象,以便它在表中反映。但框架实际上解决了这一问题。它会跟踪更改并为您更新模型。在一个名为CompTestwell的类中有一个例子,这还不够好:任何值得effort的绑定都必须在所包含元素的属性发生更改时自动触发更新。如果没有的话,那就是生不如死。我的朋友,看起来你在做一些很酷的事情,但我只有这么多时间来开始和运行,所以文档和简单的例子是必须的。我要试试看结果如何。这太酷了!有几个问题:1表格可以插入任何组件,对吗?JPanel、JScrollPane等,2我们可以控制列名吗?我的应用程序在几个语言中进行了本地化,3 SwingObjTable是否需要hashCode和equals来实现?可能是错误的,但是:从您的代码来看,模型似乎无法处理可变行对象,也就是说,如果任何行属性从外部以某种方式发生变化,它不会触发。这是正确的kleopatra。。事实并非如此。您需要调用model.setRowrow对象,以便它在表中反映。但框架实际上解决了这一问题。它会跟踪更改并为您更新模型。在一个名为CompTestwell的类中有一个例子,这还不够好:任何值得effort的绑定都必须在所包含元素的属性发生更改时自动触发更新。如果不这样做,那就是死亡。。