AbstractActionの名前を変更する

putValueのキーにAction.NAMEを指定する。

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Hoge {

  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        AbstractAction a = new AbstractAction("hoge") {
          public void actionPerformed(ActionEvent e) {
            putValue(Action.NAME, "foo");
          }
        };
        JButton b = new JButton(a);
        JButton c = new JButton(a);
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLayout(new FlowLayout());
        f.add(b);
        f.add(c);
        f.pack();
        f.setVisible(true);
      }
    });
  }

}

どっちのボタンを押しても両方の文字が変わる。