01: import java.awt.*;
02: import javax.swing.*;
03:
04: /**
05: This program demonstrates action objects. Two actions
06: insert greetings into a text area. Each action can be
07: triggered by a menu item or toolbar button. When an
08: action is carried out, the opposite action becomes enabled.
09: */
10: public class CommandTest
11: {
12: public static void main(String[] args)
13: {
14: JFrame frame = new JFrame();
15: JMenuBar bar = new JMenuBar();
16: frame.setJMenuBar(bar);
17: JMenu menu = new JMenu("Say");
18: bar.add(menu);
19: JToolBar toolBar = new JToolBar();
20: Container contentPane = frame.getContentPane();
21: contentPane.add(toolBar, BorderLayout.NORTH);
22: JTextArea textArea = new JTextArea(10, 40);
23: contentPane.add(textArea, BorderLayout.CENTER);
24:
25: GreetingAction helloAction = new GreetingAction(
26: "Hello, World", textArea);
27: helloAction.putValue(Action.NAME, "Hello");
28: helloAction.putValue(Action.SMALL_ICON,
29: new ImageIcon("hello.png"));
30:
31: GreetingAction goodbyeAction = new GreetingAction(
32: "Goodbye, World", textArea);
33: goodbyeAction.putValue(Action.NAME, "Goodbye");
34: goodbyeAction.putValue(Action.SMALL_ICON,
35: new ImageIcon("goodbye.png"));
36:
37: helloAction.setOpposite(goodbyeAction);
38: goodbyeAction.setOpposite(helloAction);
39: goodbyeAction.setEnabled(false);
40:
41: menu.add(helloAction);
42: menu.add(goodbyeAction);
43:
44: toolBar.add(helloAction);
45: toolBar.add(goodbyeAction);
46:
47: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
48: frame.pack();
49: frame.show();
50: }
51: }