gpt4 book ai didi

java - 只显示一个 Shell 如果之前打开的 shell 不显示另一个 shell

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:25 27 4
gpt4 key购买 nike

我正在开发一个 rcp 应用程序。我正在使用 Novocode swt 气球窗口。我需要在单击按钮时显示一个 BaloonWindow。但是每当我每次单击按钮时都会创建一个新的气球窗口

我的代码在下面

public Object execute(ExecutionEvent event) throws ExecutionException {
try {
BalloonWindow baloonWindow=new BalloonWindow(HandlerUtil.getActiveWorkbenchWindow(event).getShell(),SWT.ON_TOP|SWT.TOOL|SWT.CLOSE);
baloonWindow.setText("XYZ");
baloonWindow.setAnchor(SWT.RIGHT|SWT.TOP);
baloonWindow.setLocation(1290, 90);
Composite c = baloonWindow.getContents();
String array[]=new String[2];
array[0]="A";
array[1]="B";
c.setLayout(new FillLayout());
TableViewer t=new TableViewer(c,SWT.NONE);
t.setContentProvider(new ArrayContentProvider());
t.setInput(array);
c.pack(true);
baloonWindow.setVisible(true);

} catch (Exception e) {
e.printStackTrace();
}
return null;
}

任何人都可以帮助我。如何一次只显示一个气球窗口。如果一个气球窗口打开,则不应允许打开另一个气球窗口,或者在任何给定时间点应该只打开一个气球窗口。

最佳答案

我不太确定我理解你的最终目标,所以这里有两种可能性:


第一个(一次最多一个BalloonWindow)

在包含 execute() 方法的类中创建一个 static boolean 字段 isOpen。创建 BalloonWindow 后,将此变量设置为 true,并在每次输入 execute() 时检查此变量。如果为false,则创建一个新的BalloonWindow,如果为true,则return


第二(关闭BalloonWindow)

BalloonWindow 有一个方法 open()。使用此方法打开它而不是 setVisible(true)。如果要关闭 BalloonWindow,只需调用 close()setVisible(false) 将具有相同的视觉效果(窗口消失),但它仍然存在(只是不可见)。 close 真正关闭窗口。

关于java - 只显示一个 Shell 如果之前打开的 shell 不显示另一个 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12986080/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com