У меня есть следующий тестовый код 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" ) и выбрав "Quit".
Когда я это делаю, SWT-заглушка остается в доке, и приложение SWT фактически не вышло. Я должен вручную завершить приложение SWT через Eclipse или принудительно завершить работу.
Я пробовал это с помощью фонов v3.4 и v3.5 SWT под Eclipse 3.4.1 в Mac OS X 10.5.6 (Intel).
Есть ли дополнительная работа, которую мне нужно сделать, чтобы выйти из приложения, когда я закрываю оболочку?