埋め込みフレーム内でJComboBoxを使用すると、奇妙なフォーカスの問題が発生します。
私は次のような新しいシェルを作成しました
shell = new Shell(display.getActiveShell(), SWT.SHELL_TRIM | SWT.APPLICATION_MODAL);
のような埋め込みフレームを作成するために使用するシェル
Composite contentComposite = new Composite(parent, SWT.EMBEDDED);
contentComposite.setLayout(new FillLayout());
frame = SWT_AWT.new_Frame(contentComposite);
rootPanel = new Panel();
rootPanel.setLayout(new BorderLayout());
frame.add(rootPanel);
rootPanelにJComboBox(2つの要素を持つ)を追加しました。ドロップダウンメニューを開くためにコンボボックスを選択すると、コンボボックスのフォーカスを失うことなく、シェルウィンドウをドラッグアンドドロップできます。
ドロップダウンメニューは、シェルウィンドウが別の画面領域に移動しているときも、画面上の同じ場所にあります。ドロップダウンメニューは、コンボボックスの下に表示されなくなりました。
一部のコンポーネントにフォーカスリスナーを追加しようとしましたが、コンボボックスでフォーカスが失われたり、シェルでフォーカスが得られたりすることはありません。
では、シェルが移動したりフォーカスを取得したりしたときに、コンボボックスのポップアップを非表示にするにはどうすればよいですか。