方法A(非GUI)如何判断一个小部件是否仍处于活动状态并且未处置?在一类
public void add() {
if(etc...) {
add data to a arraylist .....
}
Class B.updateTable();
}
上面的方法基本上将数据添加到一个数组列表,然后在B类更新的TableViewer。
B类 - GUI对话框
之前我叫类B.updateTable(),我想检查,确保B类的GUI是开放的,而不是配置。
用户可以使用没有打开B类GUI的Class A(非gui)。因为A类构建了一个用户选择的ArrayList,并且B类显示它。所以他们可以添加数据而不需要显示它。
如果我当前运行B.updateTable()并且B类未打开,那么会得到一个处理错误的小部件。
如果我可以添加一个检查并确保在我尝试更新表之前未部署该小部件。
我可以检查类A的值还是需要编写一个静态布尔方法是类B返回类似shell.isDisposed?
然后在类A方法中,我可以添加检查。
public void add() {
if(etc...) {
add data to a arraylist .....
}
if(!Class B.isShellDisposed()) {
Class B.updateTable();
}
}
这是可能的,甚至是正确的方式来处理错误?
我的问题是在GUI中刷新我的表格查看器。所以当我将数据添加到数组列表时,我同时刷新了表格查看器。只要GUI被打开,这个效果很好。但是如果GUI已关闭,则刷新时出现错误。我发现即使对话框已关闭,表格查看器也不为空。所以刷新试图刷新一些不存在的东西。所以在关闭按钮代码中,我添加了viewer = null;这似乎解决了问题 – jkteater
然后继续并创建一个答案。你应该可以在几天内接受它。 – Baz