Java SWT从按钮刷新多个壳

时间:2012-07-19 15:47:00

标签: java swt

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

enter image description here

屏幕截图详情

  • A
    • 主要表格
    • 当2个辅助表单中的任何一个更改数据库中的数据时,此表单将更新。这是通过从二级表单重新加载表来完成的。
    • 这是数据表单的第一个实例
  • C
    • 这是数据表单的第二个实例。
    • 单击打开按钮从第一个数据表单打开。我想要做的是在我改变第二种形式的东西时刷新第一个数据表单。
    • 例如,我打开了标签295 White的记录,当我更新此记录的数据时,我希望更改显示在26白色的记录表格中

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

1 个答案:

答案 0 :(得分: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
}