2012-01-09 13 views
0

私はJavaで私のGUIスキルを練習しています。私はメニューとメニューバーをやっています。 彼らは私にちょうど良い意味がありますが、私はそれらについてもっと知ることができる場所について質問があります。Java Gui Menubars

ActionListener関数actionPerformedはメニューと同じクラスになければならず、メニューが変更されているアイテムもメニューとしてクラスに含まれている必要があります。

何か別のクラスのコンストラクタによって作成され、フレームに配置されたJPanelに影響するメニューを作成したいのですが、メニューがどのようにコンポーネントを変更できるかわかりません。

皆さんが参考になったヒントやヒントがあれば、事前に感謝しています。

+1

試し、ボタン、ツールバーに使用することができることであるhttp://docs.oracle.com/javase/チュートリアル/ uiswing/components/menu.html) – Dimitry

答えて

3

Actionオブジェクトにメニューバーアクションをラップすると便利です。これは、カプセル化:

  1. アクションの名前とアイコン
  2. それがアクション
  3. ため
  4. キーボードショートカットを選択した場合、それが有効か
  5. (チェックボックスアクションのために)無効になっている場合アクションリスナーの実装

AbstractActionのサブクラスをクラス内で定義し、そのアクションのデータがn。次に、そのアクションのゲッターを定義して、メニュー構築コードがそれを取得できるようにします。 Actionをメニューに直接追加することができます。MenuItemが自動的に作成されます。

アクションの他の利点は、(同じアクションが、この[メニュースイング]等

class ModelClass { 
    int value; 
    Action incAction = new AbstractAction("Increment") { 
     public void actionPerformed() { 
     value++; 
     setEnabled(value < 10); 
     } 
    }; 

    public Action getIncAction() { 
     return incAction; 
    } 
} 

class UIClass { 
    void buildMenu() { 
     JMenu menu = new JMenu("Model"); 
     menu.add(model.getIncAction()); 
    } 
} 
+0

あなたに私に見せてくれるリファレンスや例はないと思いますか?私はAbstractActionとActionListenerのドキュメントを調べましたが、あなたのアイデアの実装方法がわかりません。 –

+0

OK、上記の編集をご覧ください。 –

+0

ありがとう –