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 を取り出し