我正在使用JFrame创建Java项目。
我创建了一个JFrame A
(在class mainPanel
中),其中包含myTable tbl
对象,该对象扩展了JTable(public class myTable extends JTable
)。
我这样做是因为这个扩展必须有一个公共方法来填充表tbl
从DB获取值。
每次启动项目时都会填充此表。
框架A
还包含JButton(JButton b_partita
)。
此组件(b_partita
)使用以下内容启动新的JFrame B
(另一个" class aggiungiPartita implements ActionListener
")
b_partita.addActionListener(new aggiungiPartita());
框架B
主要用于填充我的数据库。
如果一切顺利,当我按下save
中的B
按钮时,JFrame将自动关闭。
问题是:
有没有办法去刷新"在B&#39的活动结束后,表tbl
(在A中)?
谢谢大家, 斯特凡诺
答案 0 :(得分:0)
当您按下“保存'并且(我假设)将新数据保存到数据库,您需要通知表格基础数据已更改。
从您的描述中可以看出,您已经扩展JTable
以在构造时填充数据库中的数据。这不是你想要做的。相反,您需要创建自己的表模型,以实现在请求时获取数据的方法。创建类的对象,然后将其传递给JTable
构造函数。您很少需要扩展JTable
类本身。有关如何执行此操作的详细信息,请参阅Java Tutorial。
我建议您的表模型类扩展AbstractTableModel
,因为这会为您完成大量工作。它提供了一个fireTableDataChanged
方法(以及更详细的示例),负责通知表它应该刷新自己。
如果您在不扩展抽象模型的情况下实现自己的模型,那么它的工作量会更多。您需要调用所有表模型监听器'具有适当构造tableChanged
的{{1}}方法。