在嵌入式框架内使用 JComboBox 时,我确实遇到了一个奇怪的焦点问题。
我创建了一个新的Shell
shell = new Shell(display.getActiveShell(), SWT.SHELL_TRIM | SWT.APPLICATION_MODAL);
我用来创建嵌入式框架的外壳,例如
Composite contentComposite = new Composite(parent, SWT.EMBEDDED);
contentComposite.setLayout(new FillLayout());
frame = SWT_AWT.new_Frame(contentComposite);
rootPanel = new Panel();
rootPanel.setLayout(new BorderLayout());
frame.add(rootPanel);
我在 rootPanel 中添加了一个 JComboBox(有 2 个元素)。当我选择组合框打开下拉菜单时,我可以拖放外壳窗口,而不会失去组合框中的焦点。
当 shell 窗口移动到另一个屏幕区域时,下拉菜单仍然在屏幕上的相同位置。下拉菜单不再显示在组合框下方。
我尝试为某些组件添加焦点侦听器,但焦点不会在组合框上丢失,也不会在外壳上获得。
那么,当外壳移动或获得焦点时,我如何隐藏组合框的弹出窗口。