1

いくつかの「大きな」(特別な) アイテムを含むポップアップ メニューを作成したいと考えています。

これらの「大きな」項目はサブメニューのように振る舞うはずですが、大きなパネル (ボタン、ラベル、コンボ ボックスなどを含む) です。これらのパネルはすべて、マウスが対応するメニュー項目の上にある (または押された) ときに表示され、同じ画面領域のポップアップ メニューのすぐ隣、一番上の項目エントリの下に表示され、対応する項目に整列されません) . 最後に選択したものは、ポップアップが表示されている限り表示されたままになります。

基本的に、これは (A)ポップアップ メニューの横にJLayeredPaneを配置し、いくつかのマウス イベントに応じてレイヤーを切り替えるような感じだと思います。おそらく、これには、この 1 つのエントリだけを持つ JPopupMenu 内の単一の大きな JPanel を使用して、ポップアップ メニュー全体を偽造する必要があります (つまり、すべての「通常の」メニュー項目は実際にはボタンでなければなりません)。

したがって、一方(B) では、標準の swing サブメニュー項目を使用し、大きなパネルをサブメニュー項目として追加してから、すべてのサブメニュー項目を同じ場所とサイズに強制する方がおそらく賢明に思えます。ただし、これが機能するかどうか、また、ユーザーが大きなパネルの 1 つ内のコンボ ボックスをクリックするとすぐにメニューが非表示になるなどの問題があるかどうかはわかりません。

(A)または(B)、または(C)のどちらをお勧めしますか?

そのようなことをする経験/既知の落とし穴はありますか?

よろしく、フィリップ

4

1 に答える 1

0

私は A または B の経験はありませんが、この 2 つのうち、最初に B を試してみます。

より良い別のオプションは、JDialog を使用することです。装飾されないように設定し、フォーカスを失うと非表示にします。(これは、A を行うためのより簡単な方法かもしれません)。

于 2011-01-23T14:57:51.710 に答える