public abstract class AbstractAction extends Object implements Action, Cloneable, Serializableこのクラスのコンストラクタは次のようになっています
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test extends JApplet { public void init() { Icon icon = new ImageIcon("icon1.jpg"); Action action = new ButtonAction("Kitty" , icon); JButton button = new JButton(action); getContentPane().add(button); } class ButtonAction extends AbstractAction { public ButtonAction(String text) { super(text); } public ButtonAction(String text , Icon icon) { super(text , icon); } public void actionPerformed(ActionEvent e) { System.out.println("On Action Event"); } } }JButton() コンストラクタは、Action をパラメータとして受け取ることができました
フィールト定数 | 解説 |
---|---|
ACCELERATOR_KEY | アクセラレータとして使用する KeyStroke の格納に使用するキーです |
ACTION_COMMAND_KEY | JComponent に関連付けられた Keymap に常駐している結果として Action が通知されるときに生成される ActionEvent のコマンド文字列の判定に使用するキーです |
DEFAULT | オブジェクトのプロパティ (テキストまたはアイコン) を設定または取得するときに 記憶取得キーとして使うと便利な定数です |
LONG_DESCRIPTION | 詳細な説明を格納するために使われるキーです |
MNEMONIC_KEY | ニーモニックとして使用する整数値キーコードの格納に使用するキーです |
NAME | 名前を格納するために使われるキーです |
SHORT_DESCRIPTION | 短い説明を格納するために使われるキーです。 |
SMALL_ICON | 小さいアイコンを格納するために使われるキーです。 |
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test extends JApplet { public void init() { Icon icon = new ImageIcon("icon1.jpg"); Action action = new ButtonAction(); action.putValue(Action.NAME , "Kitty on your lap"); action.putValue(Action.SMALL_ICON , icon); JButton button = new JButton(action); getContentPane().add(button); } class ButtonAction extends AbstractAction { public void actionPerformed(ActionEvent e) { System.out.println("On Action Event"); } } }このプログラムは、putValue() メソッドを使ってテキストとアイコンを設定しています
java.lang.Object | +--java.util.EventObject | +--java.beans.PropertyChangeEvent public class PropertyChangeEvent extends EventObjectこのクラスのコンストラクタは、次のようなものが公開されています
public PropertyChangeEvent( Object source , String propertyName , Object oldValue , Object newValue )source にはイベント発生元を、propertyName にはプロパティのキーを
import java.awt.*; import java.awt.event.*; import java.beans.*; import javax.swing.*; public class Test extends JApplet implements PropertyChangeListener { public void init() { Icon icon = new ImageIcon("icon1.jpg"); Action action = new ButtonAction(); action.putValue(Action.NAME , "Kitty on your lap"); action.putValue(Action.SMALL_ICON , icon); action.addPropertyChangeListener(this); JButton button = new JButton(action); getContentPane().add(button); } public void propertyChange(PropertyChangeEvent evt) { System.out.println("OnPropertyChange"); System.out.println("Old Value = " + evt.getOldValue()); System.out.println("New Value = " + evt.getNewValue()); } class ButtonAction extends AbstractAction { public void actionPerformed(ActionEvent e) { Action action = ((JButton)e.getSource()).getAction(); action.putValue(Action.NAME , "Tokyo mew mew"); } } }このプログラムは、ボタンを押すと、ボタンから Action を取り出し