首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java表格模型设计

Java表格模型设计
EN

Stack Overflow用户
提问于 2008-10-03 13:55:19
回答 5查看 4.1K关注 0票数 1

我有一个表类,用来创建修改项目的表。我想使用表格模型在JTable中显示这些项目。对我来说,表格模型属于我的GUI包,但是表格需要表格模型来触发更改,而表格模型需要表格类来显示它,所以我不能将这两者分开。如果你需要这样做,你使用的类结构是什么?或者,我的思维中有一个流程,它们属于同一个包?

EN

回答 5

Stack Overflow用户

发布于 2008-10-03 17:19:29

TableModel是一种适配器。我总是编写表格模型来扩展AbstractTableModel,并将其作为我的图形用户界面面板类的私有内部类。您只需填写几个方法:getRowCountgetColumnCountgetValueAt

您的GUI类应该能够访问一些控制器,它可以在其中填充此信息。当您的控制器发现数据更新时,它应该通知您的GUI类,然后GUI类可以调用AbstractTableModel.fireTableDataChanged或其他适当的方法。

千万不要使用DefaultTableModel类,因为这样您就必须保持表模型的数据与控制器的数据同步。

票数 3
EN

Stack Overflow用户

发布于 2008-10-03 14:14:02

对我来说,tablemodel是小部件的一部分,也就是GUI。我不会在我的业务逻辑类中依赖javax.swing包。

因此,您将使用适配器或其他机制从业务层加载表模型,但这种分离程度可能很有用。

决策还取决于项目的规模,而且可能比这复杂得多。例如,有关更抽象的情况,请参阅jgoodies binding框架和文档。

票数 1
EN

Stack Overflow用户

发布于 2008-10-03 14:18:18

模型是保存数据的位。它应该像这样的模型一样维护和释放监听程序。

现在,您可能需要在模型中使用某种委托来转换数据或调整类型。因此,您将数据放在一个模型对象中,该对象不一定与javax.swing.table有任何关系。然后实现一个委托给底层模型的TableModel。使用该TableModel创建一个JTable,但不引用底层模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/166996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档