如何刷新"当帧B的执行结束时,JTable(在帧A中)?

时间:2017-06-19 22:35:08

标签: java jframe jtable jbutton actionlistener

我正在使用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中)?

谢谢大家, 斯特凡诺

1 个答案:

答案 0 :(得分:0)

当您按下“保存'并且(我假设)将新数据保存到数据库,您需要通知表格基础数据已更改。

从您的描述中可以看出,您已经扩展JTable以在构造时填充数据库中的数据。这不是你想要做的。相反,您需要创建自己的表模型,以实现在请求时获取数据的方法。创建类的对象,然后将其传递给JTable构造函数。您很少需要扩展JTable类本身。有关如何执行此操作的详细信息,请参阅Java Tutorial

我建议您的表模型类扩展AbstractTableModel,因为这会为您完成大量工作。它提供了一个fireTableDataChanged方法(以及更详细的示例),负责通知表它应该刷新自己。

如果您在不扩展抽象模型的情况下实现自己的模型,那么它的工作量会更多。您需要调用所有表模型监听器'具有适当构造tableChanged的{​​{1}}方法。