36

アプリケーションでツールバーを作成したいと考えています。そのツールバーのボタンをクリックすると、Eclipse のツールバーと同じように、メニューがポップアップ表示されます。Swingでこれを行う方法がわかりません。誰か助けてくれませんか?Google を試しましたが、何も見つかりませんでした。

4

7 に答える 7

17

これが必要以上に難しい理由や、MouseListener を使用する必要がある理由がわかりません。Steve McLeod による解決策は機能しますが、メニューが表示される場所は、マウスがクリックされた場所によって異なります。JButton に通常使用されるように ActionListener を使用しないのはなぜですか。難しくも少なくもないようです。

final JPopupMenu menu = new JPopupMenu();
menu.add(...whatever...);

final JButton button = new JButton();
button.setText("My Menu");
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ev) {
        menu.show(button, button.getBounds().x, button.getBounds().y
           + button.getBounds().height);
    }
});

これにより、JMenuBar のメニューとほぼ同じようにメニューが配置され、位置が一貫しています。menu.show() の x と y を変更することで、別の場所に配置できます。

于 2012-10-16T18:16:30.937 に答える
2

AWTと同じだと思います。

そのボタンに ActionCommand を配置し、実行時にマウス座標に従ってポップアップ メニューを表示する必要があります。

于 2009-11-07T10:50:07.117 に答える
2

How to Use MenusのセクションBringing a Popup Menuを参照してください。

于 2009-11-07T11:35:56.487 に答える
1

私はあなたを正しく理解しているかどうかわかりませんが、Swing でツールバーを作成する方法を知りたい場合は、これをチェックしてください

Java チュートリアル: ツールバーの使い方とこれ

Java チュートリアル: アクションの使用方法

于 2009-11-07T11:30:34.763 に答える