0

埋め込みフレーム内で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つの要素を持つ)を追加しました。ドロップダウンメニューを開くためにコンボボックスを選択すると、コンボボックスのフォーカスを失うことなく、シェルウィンドウをドラッグアンドドロップできます。

ドロップダウンメニューは、シェルウィンドウが別の画面領域に移動しているときも、画面上の同じ場所にあります。ドロップダウンメニューは、コンボボックスの下に表示されなくなりました。

一部のコンポーネントにフォーカスリスナーを追加しようとしましたが、コンボボックスでフォーカスが失われたり、シェルでフォーカスが得られたりすることはありません。

では、シェルが移動したりフォーカスを取得したりしたときに、コンボボックスのポップアップを非表示にするにはどうすればよいですか。

4

1 に答える 1

1

Andrew Thompsonが彼のコメントで、3つの異なるUIライブラリは最良の選択ではないと説明した後、私はAWTChoiceクラスを試し始めまし

シェルウィンドウが選択されると、これらのクラスはフォーカスを失います。

したがって、Swingは埋め込みAWTオブジェクトではそれほど簡単には使用できないようですが、その理由はまだわかりません。

于 2012-06-12T06:32:57.530 に答える