gpt4 book ai didi

java - 无法更新子 JFrame 中的结果表

转载 作者:行者123 更新时间:2023-12-01 15:48:27 25 4
gpt4 key购买 nike

我有一个交互式的主 JFrame,即用户设置不同的选项。按下“运行”按钮后,根据用户首选项创建配置文件,并将其传递到程序的下一部分。完成一些计算并将结果写入文件。程序的第三部分读取结果文件并对其进行总结。

然后打开由 JTabbedPane 和几个 JPanel 组成的子 JFrame。每个 JPanel 都显示不同的 JTable 以及相关信息。子 JFrame 具有 DISPOSE_ON_CLOSE 方法,否则两个 JFrame 都会被终止。

所以问题是,如果用户更改一些选项,再次运行程序,新的子 JFrame 实际上并不是新的 - 它只显示第一次运行的信息。我试过:

invalidate()
revalidate()
repaint()

没有任何帮助。我不知道问题出在哪里。我非常确定更改选项后会读取新的结果文件,因为它会在控制台中打印。

可能其他重要的事情是首先创建表,并且子 JFrame 被最新调用。

最佳答案

可能是因为你的代码中的某个地方有:

table = new JTable(...);

这不会将表添加到 GUI。您应该通过执行以下操作刷新现有表中的数据,而不是创建新表:

TableModel model = ....
table.setModel( model );

这将导致数据被自动重新绘制。不需要 invalidate()、revalidate() 或 repaint()。

关于java - 无法更新子 JFrame 中的结果表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6634216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com