在嵌入式框架中使用JComboBox时,我确实有一个奇怪的焦点问题。
我创建了一个像
这样的新Shellshell = new Shell(display.getActiveShell(), SWT.SHELL_TRIM | SWT.APPLICATION_MODAL);
用于创建嵌入式框架的shell,如
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个元素)。 当我选择ComboBox打开下拉菜单时,我可以拖放shell窗口,而不会丢失组合框中的焦点。
当shell窗口移动到另一个屏幕区域时,下拉菜单仍然在屏幕上的相同位置。下拉菜单不再显示在组合框下方。
我试图为一些组件添加一个焦点监听器,但是焦点不会丢失在组合框上而不会在shell上获得。
那么当移动shell或获得焦点时,如何隐藏组合框的弹出窗口。
答案 0 :(得分:1)
在他的评论中描述Andrew Thompson后,3个不同的UI库不是最佳选择,我开始尝试AWT Choice类。
当选择shell窗口时,这些类正在失去焦点。
所以看起来,在嵌入式AWT对象中不能轻易使用swing,但我还没有看到它。