Java Reference
In-Depth Information
Example A.91 ObserverGui.java
1. import java.awt.Container;
2. import java.awt.event.WindowAdapter;
3. import java.awt.event.WindowEvent;
4. import javax.swing.BoxLayout;
5. import javax.swing.JFrame;
6. public class ObserverGui{
7. public void createGui(){
8. JFrame mainFrame = new JFrame("Observer Pattern Example");
9. Container content = mainFrame.getContentPane();
10. content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
11. TaskChangeObservable observable = new TaskChangeObservable();
12. TaskSelectorPanel select = new TaskSelectorPanel(observable);
13. TaskHistoryPanel history = new TaskHistoryPanel();
14. TaskEditorPanel edit = new TaskEditorPanel(observable);
15. observable.addTaskChangeObserver(select);
16. observable.addTaskChangeObserver(history);
17. observable.addTaskChangeObserver(edit);
18. observable.addTask(new Task());
19. content.add(select);
20. content.add(history);
21. content.add(edit);
22. mainFrame.addWindowListener(new WindowCloseManager());
23. mainFrame.pack();
24. mainFrame.setVisible(true);
25. }
26.
27. private class WindowCloseManager extends WindowAdapter{
28. public void windowClosing(WindowEvent evt){
29. System.exit(0);
30. }
31. }
32. }
Example A.92 TaskEditorPanel.java
1. import java.awt.BorderLayout;
2. import javax.swing.JPanel;
3. import javax.swing.JLabel;
4. import javax.swing.JTextField;
5. import javax.swing.JButton;
6. import java.awt.event.ActionEvent;
7. import java.awt.event.ActionListener;
8. import java.awt.GridLayout;
9. public class TaskEditorPanel extends JPanel implements ActionListener, TaskChangeObserver{
10. private JPanel controlPanel, editPanel;
11. private JButton add, update, exit;
12. private JTextField taskName, taskNotes, taskTime;
13. private TaskChangeObservable notifier;
14. private Task editTask;
15.
16. public TaskEditorPanel(TaskChangeObservable newNotifier){
17. notifier = newNotifier;
18. createGui();
19. }
20. public void createGui(){
21. setLayout(new BorderLayout());
22. editPanel = new JPanel();
23. editPanel.setLayout(new GridLayout(3, 2));
24. taskName = new JTextField(20);
25. taskNotes = new JTextField(20);
26. taskTime = new JTextField(20);
27. editPanel.add(new JLabel("Task Name"));
28. editPanel.add(taskName);
29. editPanel.add(new JLabel("Task Notes"));
30. editPanel.add(taskNotes);
31. editPanel.add(new JLabel("Time Required"));
32. editPanel.add(taskTime);
33.
34. controlPanel = new JPanel();
35. add = new JButton("Add Task");
36. update = new JButton("Update Task");
37. exit = new JButton("Exit");
38. controlPanel.add(add);
39. controlPanel.add(update);
40. controlPanel.add(exit);
41. add.addActionListener(this);
42. update.addActionListener(this);
Search WWH ::




Custom Search