01: import java.awt.event.*;
02: import javax.swing.*;
03:
04: /**
05: This action places a greeting into a text field
06: and afterwards disables itself and enables its
07: opposite action.
08: */
09: public class GreetingAction extends AbstractAction
10: {
11: /**
12: Constructs a greeting action.
13: @param greeting the string to add to the text area
14: @param textArea the text area to which to add the greeting
15: */
16: public GreetingAction(String greeting, JTextArea textArea)
17: {
18: this.greeting = greeting;
19: this.textArea = textArea;
20: }
21:
22: /**
23: Sets the opposite action.
24: @param the action to be enabled after this action was
25: carried out
26: */
27: public void setOpposite(Action action)
28: {
29: oppositeAction = action;
30: }
31:
32: public void actionPerformed(ActionEvent event)
33: {
34: textArea.append(greeting);
35: textArea.append("\n");
36: if (oppositeAction != null)
37: {
38: setEnabled(false);
39: oppositeAction.setEnabled(true);
40: }
41: }
42:
43: private String greeting;
44: private JTextArea textArea;
45: private Action oppositeAction;
46: }