1

私は JPopupMenu を持っていて、そこにいくつかの JMenuItems を挿入しています。私が必要としているのは、通常の doe と同じように見えるがクリックできない JMenuItem です。

私はそれを試しました:

JPopupMenu popmen = new JPopupMenu();

JMenuItem menu1 = new JMenuItem("Add new Datasource:");
JMenuItem menu2 = new JMenuItem("Join");

menu1.setEnabled(false);
popmen.add(menu1);
popmen.addSeparator();
popmen.add(menu2);

ここでの問題は、setEnabled メソッドを使用して menu1 の外観が変更されていることです。それを行う方法はありますか、または有効になっていない JMenuItem の外観を通常の JMenuItem に戻す必要がありますか?

何もしない JMenuItem が必要です。他の JMenuItems のヘッダー カテゴリだけをクリックできないマウスオーバー イベントはありません。たとえば、空の JMenuItem にはまだマウスオーバー イベントがあります。すべての影響を排除するメソッドまたはプロパティを探しています。

これを行うには、すべてのイベントを書き直す必要がありますか?

4

3 に答える 3

0

You can override (and redefine) the clickable method. You can have a custom JMenuItem.

于 2013-08-21T12:17:48.917 に答える
0

メニューがクリックされたときにトリガーするアクションを定義しないと、実質的にメニューがクリックできなくなります。クリックできないメニュー項目コンポーネントを定義する場合は、JMenuItem クラスを拡張し、 addActionListener または addItemListener メソッドをオーバーライドしてリスナーを拒否し、メニューがクリックされたときにアクションがトリガーされないようにすることもできます。

于 2013-08-21T13:11:34.037 に答える