0

swing を使用して jmenu で actionperformed メソッドを呼び出すことはできますか

私は次のコードを使用しています

     JMenu menu1= new JMenu("File");
     MenuBar mb= new MenuBar();
      mb.add(menu1);
      set JmenuBar(mb)
     menu1.addActionListener(this);


  public void actionPerformed(ActionEvent ae)
  {

      JOptionPane.showMessaageDialog(null,"menu clicked");
     // but its not working


      }

前もって感謝します

4

1 に答える 1

3

JMenu が実行するように設計されたアクションは、JMenuItems でポップアップを開くことです。それ以外の操作はサポートされていません (たとえサポートされていたとしても、ユーザーを混乱させることになります)。カスタム アクションは、ポップアップの JMenuItems によって処理されることになっています。次のようなものでそれらをインストールします。

JMenu menu ..
Action myAction = new AbstractAction("Do XY") {
    public void actionPerformed(..) {
        // implement doing XY
    } 
};
menu.add(myAction);  
于 2012-09-21T09:50:51.777 に答える