2012-03-24 17 views
2

私はボタンが以下のコードで「閉じる」のタイトルを持っている必要がありますが、それはしていないとしますボタンにアクションの[NAME]プロパティが反映されないのはなぜですか?

public class Test_Actions extends JDialog 
{ 
    private AbstractAction closeAction = new AbstractAction() 
    {  
     { 
      putValue("NAME", "Close"); 
     } 

     @Override 
     public void actionPerformed(ActionEvent arg0) 
     { 
      Test_Actions.this.setVisible(false); 
      Test_Actions.this.dispatchEvent(new WindowEvent(Test_Actions.this, WindowEvent.WINDOW_CLOSING)); 
     }  
    }; 

    public Test_Actions() 
    {  
     JLabel label = new JLabel("Hello world"); 

     JButton button = new JButton(closeAction); 
     //button.setText("Text"); 

     setLayout(new BorderLayout()); 
     add(label, BorderLayout.CENTER); 
     add(button, BorderLayout.SOUTH); 

     setDefaultCloseOperation(DISPOSE_ON_CLOSE); 

    } 

    public static void main(String[] args) throws InterruptedException, InvocationTargetException 
    { 
     final Test_Actions dialog = new Test_Actions(); 
     dialog.setModal(true); 

     SwingUtilities.invokeAndWait(new Runnable() 
     { 
      @Override 
      public void run() 
      { 
       dialog.pack(); 
       dialog.setVisible(true); 
      }  
     }); 

     System.out.println("Here"); 
    } 
} 
+0

良い質問+1 – mKorbel

答えて

8

使用Action.NAME代わり"NAME"の。

value of this constantは実際には"Name"なので、それも使用できますが、わかりましたが間違ってしまうのは簡単です。

+0

ああ私はばかです! :) – Dims

関連する問題