Eclipse 3.4.1 のライブラリを使用して SWT/JFace アプリケーションを開発しています。Windows (Vista 32 ビット) および Ubuntu 8.10 32 ビットで次の問題が発生します。
JFace ApplicationWindow の createMenuManager メソッドでメニュー・バーを作成します。ファイル、編集、およびヘルプ用の MenuManager を追加します。
次に、次のように、ファイル MenuManager に ExitAction を追加します。
filemenu.add(new ExitAction(this));
ExitAction は次のように定義されます。
public class ExitAction extends Action {
final ApplicationWindow window;
public ExitAction(ApplicationWindow w) {
this.window = w;
setText("E&xit");
setToolTipText("Exit the application");
setAccelerator(SWT.MOD1 + 'Q');
}
}
アプリケーションが起動したら、「CTRL + Q」を押してアプリケーションを終了できるようにしたいと考えています。ただし、これは機能しません。メニューバーの「ファイル」をクリックしてから「CTRL + Q」をクリックした後にのみ、アプリケーションが終了します。
さまざまなアクセラレータでこれを試しましたが、同じ動作です。
ただし、「Action」の代わりに「MenuItem」を作成してメニューバーに貢献すると機能します。
これは SWT のバグですか、それとも見逃していますか?
トルステン。