У меня есть следующий тестовый код SWT:
public static void main(String[] args) {
shell = new Shell();
shell.setText(APP_NAME + " " + APP_VERSION);
shell.addShellListener(new ShellListener() {
public void shellActivated(ShellEvent event) { }
public void shellClosed(ShellEvent event) { exit(); }
public void shellDeactivated(ShellEvent event) { }
public void shellDeiconified(ShellEvent event) { }
public void shellIconified(ShellEvent event) { }
});
shell.open();
display = shell.getDisplay();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
Мой метод exit () выглядит следующим образом:
private void exit() {
System.exit(0);
}
Я пытаюсь выйти из приложения, закрыв оболочку («окно») или потянув вниз меню приложения (с пометкой «SWT») и выбрав «Выход».
Когда я делаю это, заглушка SWT остается в Dock, и приложение SWT фактически не закрывается. Я должен вручную закрыть приложение SWT через Eclipse или через Force Quit.
Я пробовал это с jar SW3 v3.4 и v3.5, под Eclipse 3.4.1 под Mac OS X 10.5.6 (Intel).
Нужно ли выполнять дополнительную работу, чтобы выйти из приложения при закрытии оболочки?