gpt4 book ai didi

java - 使合成在 SWT 中可聚焦

转载 作者:太空狗 更新时间:2023-10-29 22:35:50 25 4
gpt4 key购买 nike

是否可以在 SWT 中创建可聚焦合成?我通过显示过滤器捕获所有键盘事件,但是当焦点位于树或列表上时会出现一些问题 - GTK+ 的默认操作是在控件的内容中搜索。

我想做的是将 SWT 和 AWT 与可聚焦的 AWT 组件混合。我设法使 AWT 小部件无法聚焦,并添加了 Display 过滤器以使 AWT 组件接收键盘事件(但不是直接接收),即使它没有聚焦。但是当某些 SWT 控件获得焦点时会出现几个问题 - 这就是为什么我想让复合可获得焦点。

所以我的最后一个问题是:是否有可能使 SWT 复合 Material 可聚焦?

最佳答案

如果 Composite 包含子部件,则默认操作是在选中时放弃焦点。为了避免这种情况,首先扩展 Composite 类:

class FocusableComposite extends Composite
{
public FocusableComposite(Composite parent, int style)
{
super(parent, style);
}

public boolean setFocus()
{
return super.forceFocus();
}
}

然后在 FocusableComposite 的新实例上使用 MouseListener,以便在单击 Composite 时直接调用 setFocus():

Composite composite = new FocusableComposite(shell, SWT.NONE);

composite.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent event)
{
((Composite)event.widget).setFocus();
}
});

关于java - 使合成在 SWT 中可聚焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921614/

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