SWT – 如果shell用户已切换到另一个shell,则可靠地知道事件
发布时间:2020-12-15 17:01:40 所属栏目:安全 来源:网络整理
导读:我需要知道,当用户切换到另一个 shell时,通过单击它. 我尝试了shellListener.shellDeactivated(),但是当shell将焦点放在它自己的控件上时,会触发此事件,这意味着单击活动Shell中的Control时. 这不是预期的行为,因为我需要知道,当另一个Shell被激活时,而不是
我需要知道,当用户切换到另一个
shell时,通过单击它.
我尝试了shellListener.shellDeactivated(),但是当shell将焦点放在它自己的控件上时,会触发此事件,这意味着单击活动Shell中的Control时. 这不是预期的行为,因为我需要知道,当另一个Shell被激活时,而不是我的. 有任何想法吗?
我们假设你有三个炮弹.主壳和两个壳可以从主壳打开.
因此,当另一个shell被激活时,应该通知主shell. shell.addListener(SWT.Show,new Listener() { @Override public void handleEvent(Event e) { System.out.println("activated: " + e.text); } }); 其他shell应该在激活时触发(通知)此事件.为此,您将shell侦听器添加到其他两个shell,并使用o.notifyListeners();在方法shellActivated()中触发该事件. shell.addShellListener(new ShellAdapter() { @Override public void shellActivated(ShellEvent e) { Shell shellSrc = (Shell) e.getSource(); Display display = shellSrc.getDisplay(); Event event = new Event(); event.type = SWT.Show; event.text = "other shell 1"; Shell[] shells = display.getShells(); for(Shell o : shells) { o.notifyListeners(SWT.Show,event); } } }); 当您激活其他两个shell之一时,将通过事件类型SWT.Show通知主shell. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容