我正在构建一个访问数据库的应用程序,目前我有一个显示主表的SWT Shell。从该表中,用户可以打开单个记录,并且从记录表单内部,用户可以打开具有相同类型但包含不同数据的第二个表单。 如果更新任一表单中的记录,则更新将反映在主表单中。 我的问题是我无法更新打开的第一个记录表单。 有没有办法强制更新或重绘某种类型的所有打开表单,或者有一种方法可以同时更新同一类型的多个shell。 下面的屏幕截图显示了我想要做的事情。
屏幕截图详情
我知道这是一个难以理解的问题,所以请随时提出更多详细信息,我正在努力解决这个问题。
答案 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
}