最小化后调整 JFace 应用程序 window
Resize JFace application window after minimizing
我有一个 JFace 应用程序,我正在使用一个托盘 class 和一个弹出菜单:
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");
}
}
每次 window 最小化时,我都会显示托盘项目:
@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);
}
});
}
但我不知道如何通过单击打开的菜单将 window 调回前面(调整大小)?
使用 false
参数调用 Shell
setMinimized
方法:
shell.setMinimized(false);
您可能还想使用
shell.setActive();
shell.moveAbove(null);
使 shell 处于活动状态并高于其他 windows。
我有一个 JFace 应用程序,我正在使用一个托盘 class 和一个弹出菜单:
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");
}
}
每次 window 最小化时,我都会显示托盘项目:
@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);
}
});
}
但我不知道如何通过单击打开的菜单将 window 调回前面(调整大小)?
使用 false
参数调用 Shell
setMinimized
方法:
shell.setMinimized(false);
您可能还想使用
shell.setActive();
shell.moveAbove(null);
使 shell 处于活动状态并高于其他 windows。