A类方法A(非GUI)
public void add() {
if(etc...) {
add data to a arraylist .....
}
Class B.updateTable();
}
上面的方法基本上将数据添加到arraylist,然后更新b类中的tableViewer。
B类 - GUI对话
在我调用类B.updateTable()之前,我想检查并确保B类的GUI是开放的而不是处理。
用户可以使用A类(非gui)而不打开B类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();
}
}
这是否可能,甚至是处理错误的正确方法?
答案 0 :(得分:0)
我关注的问题是刷新我的表查看器,而GUI已关闭。当我的用户关闭GUI以通过主应用程序向arraylist添加更多数据时。我在add方法中有代码来刷新GUI中的表查看器。主要问题是即使GUI关闭,表查看器也不为空。所以我的代码试图刷新已经处理好的东西。知道在GUI关闭时我不需要刷新表查看器。我在关闭按钮代码中将表查看器设置为null。然后在更新方法中检查查看器是否为null。
static public void updateTableViewer() {
if(getViewer() != null) {
viewer.refresh();
}
}
所以现在当GUI关闭时,表查看器为NULL,当它打开时,表查看器不为空。这似乎对我有用。