gpt4 book ai didi

java - 如何使 SWT Composite 可选择?

转载 作者:行者123 更新时间:2023-11-30 08:51:02 28 4
gpt4 key购买 nike

我正在使用 SWT 库在 Eclipse 中创建一个向导页面。到目前为止,我已成功创建页面,但只有一个问题:- 未选择 SWT 复合 Material
我的向导页面包含一个 scrolledComposite,其中包含多个网格形式的复合 Material 。 每个组合都包含一个浏览器,就像一个示例模板一样。我想要的是当我选择一个包含浏览器的组合时,它应该被选中并激活完成按钮。

现在,我的疑问是,如何使包含浏览器的组合成为可选择的,因为组合不包含 selectionListener。或者更好的是,有没有办法让浏览器可选择?

示例代码将不胜感激。

我是菜鸟,这是我关于 SO 的第一个问题,所以如果有任何错误,请原谅我。

最佳答案

您可能想使用浏览器的 addFocusListener 方法来监听获得(或失去)焦点的控件。然后您可以启用/禁用完成按钮。

焦点监听器看起来像:

public class MyFocusListener implements FocusListener
{
public void focusGained(FocusEvent event)
{
}

public void focusLost(FocusEvent event)
{
}
}

测试程序:

public class Stackoverflow
{
public static void main(final String args [])
{
Display.setAppName("Stackoverflow");
final Display display = new Display();
final Shell shell = new Shell(display);

shell.setSize(500, 400);
shell.setLayout(new FillLayout());

final Composite composite = new Composite(shell, SWT.BORDER);
composite.setLayout(new GridLayout());

final Browser browser = new Browser(composite, SWT.NONE);
browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

final Button finish = new Button(composite, SWT.PUSH);
finish.setText("Finish");
finish.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));

browser.setUrl("google.com");

final FocusListener listener = new FocusListener()
{
public void focusLost(final FocusEvent arg0)
{
}


public void focusGained(final FocusEvent arg0)
{
System.out.println("FocusGained");
finish.setEnabled(true);
}
};
browser.addFocusListener(listener);

shell.open();

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

关于java - 如何使 SWT Composite 可选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30723337/

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