【发布时间】:2016-02-20 16:21:23
【问题描述】:
我有一个 JFace 应用程序,我正在使用一个托盘类和一个弹出菜单:
public class MyApp extends ApplicationWindow {
private TrayItem trayItem;
private Menu trayMenu;
private MenuItem trayOpenMenu;
@Override
protected Control createContents(Composite parent) {
Tray tray = Display.getCurrent().getSystemTray();
trayItem = new TrayItem(tray, SWT.NONE);
trayItem.setToolTipText(Constants.APP_NAME);
trayItem.setVisible(false);
trayItem.addMenuDetectListener(new MenuDetectListener() {
@Override
public void menuDetected(MenuDetectEvent e) {
trayMenu.setVisible(true);
}
});
trayMenu = new Menu(getShell(), SWT.POP_UP);
trayOpenMenu = new MenuItem(trayMenu, SWT.PUSH);
trayOpenMenu.setText("&Open");
}
}
每次最小化窗口时,我都会显示托盘项:
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.addListener(SWT.Iconify, new Listener() {
@Override
public void handleEvent(Event e) {
trayItem.setVisible(true);
}
});
newShell.addListener(SWT.Deiconify, new Listener() {
@Override
public void handleEvent(Event e) {
trayItem.setVisible(false);
}
});
}
但我不知道如何通过单击打开菜单将窗口拉回前面(调整其大小)?
【问题讨论】: