1

我正在构建一个访问数据库的应用程序,目前我有一个显示主表的 SWT Shell。用户可以从该表打开单个记录,从记录表单内部,用户可以打开第二个相同类型但包含不同数据的表单。如果任一表单中的记录被更新,则更新将反映在主表单中。我的问题是我无法更新打开的第一个记录表单。有没有办法强制更新或重绘某种类型的所有打开表单,或者有没有办法可以同时更新多个相同类型的 shell。下面的屏幕截图显示了我正在尝试做的事情。

在此处输入图像描述

截图详情

  • 一种
    • 主表格
    • 当前,当 2 个辅助表单中的任何一个更改数据库中的数据时,此表单会更新。这是通过从辅助表单重新加载表来完成的
    • 这是数据表单的第一个实例
  • C
    • 这是数据表单的第二个实例。
    • 通过单击打开按钮从第一个数据表单打开它。我想要做的是在我更改第二个表单中的某些内容时刷新第一个数据表单。
    • 例如,我打开了标签 295 White 的记录,当我更新此记录的数据时,我希望更改显示在 26 White 的记录表单中

我知道这是一个难以理解的问题,所以请随时询问更多细节,我正在努力解决这个问题。

4

1 回答 1

2

在主窗体中,您设置了一个 Java Stack.

Stack<DataForm> stack = new Stack<DataForm>(); 

您将对此的引用传递Stack给数据表单。

在数据表单的构造函数中,传递数据表单实例。

stack.push(this);

在数据表单的析构函数中(退出时),您删除数据表单实例。

int pos = stack.search(this);
stack.remove(pos);

当您想要刷新所有表单时,您将遍历堆栈。

for (DataForm dataForm : stack) {
     // do the refresh
}
于 2012-07-19T16:38:28.743 回答