我开发了一个简单的 Swing GUI 来允许用户编辑我的应用程序的数据。用户界面相当简单:
- 包含 JTabbedPane 的 JFrame。
- 每个选项卡都由 JPanel 的一个子类组成,该子类提供工具来编辑数据的某个方面。
- 数据本身包含在一个对象中,并且一个引用被传递给每个 JPanel。
但是有一个问题:我需要同步不同的 JPanel。
例如,数据对象存储人员列表和任务列表。
一个 JPanel 允许用户编辑人员。他可以创建新的人员并删除现有的人员。
第二个 JPanel 允许用户将人员分配给任务。
两个 JPanel 在首次打开时都会被初始化。创建组件并设置布局。现在用户可以开始使用 UI。
- 他打开 JTabbedPane 的第一个选项卡并创建了第一个 Person。
- 他打开第二个标签。第二个选项卡的组件被初始化并列出可用的一个人。他分配了一个任务。
- 他返回到第一个选项卡并创建了第二个人。
- 他切换回第二个选项卡来处理新人。
但是第二个选项卡和它包含的 JPanel 已经被初始化了。除非更新 JPanel,否则用户将看不到第二个人。我已经在我的 JPanel 子类上为选项卡 2 实现了一个自定义更新方法。但是我该如何调用它呢?
我需要重绘组件时触发的 Swing 事件。