新的SWT Shell没有关注焦点?

时间:2016-02-23 15:05:26

标签: java swt

目前正在开发一个Eclipse插件,我想制作一个在创建/显示时不关注的Shell。

我尝试过使用SWT.NO_FOCUS,但无济于事。

如何在不关注您所在的其他应用程序/窗口的情况下创建Shell?

2 个答案:

答案 0 :(得分:2)

下面的代码将打开一个新的Shell而不会将焦点从父母那里移开:

final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new GridLayout());

Button button = new Button(shell, SWT.PUSH);
button.setText("Open new Shell");
button.addListener(SWT.Selection, (event) -> {
    Shell child = new Shell(shell);
    child.setText("Child");
    child.setVisible(true);
    child.setSize(300,200);
});

shell.pack();
shell.open();

while (!shell.isDisposed())
{
    if (!display.readAndDispatch())
        display.sleep();
}
display.dispose();

答案 1 :(得分:1)

对于像工具提示shell这样的东西:

new Shell(parent, SWT.ON_TOP | SWT.TOOL | SWT.NO_FOCUS);