Command pattern in Java 3

/* The Design Patterns Java Companion Copyright (C) 1998, by James W. Cooper IBM Thomas J. Watson Research Center */import java.awt.Button; import java.awt.Color; import java.awt.FileDialog; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; interface Command { publicvoid Execute(); } publicclass ExtrnCommand extends Frame implements ActionListener { Menu mnuFile; fileOpenCommand mnuOpen; fileExitCommand mnuExit; btnRedCommand btnRed; Panel p; Frame fr; //----------------------------------------- public ExtrnCommand() { super("Frame with external commands"); fr = this; //save frame object MenuBar mbar = new MenuBar(); setMenuBar(mbar); mnuFile = new Menu("File", true); mbar.add(mnuFile); mnuOpen = new fileOpenCommand("Open...", this); mnuFile.add(mnuOpen); mnuExit = new fileExitCommand("Exit"); mnuFile.add(mnuExit); mnuOpen.addActionListener(this); mnuExit.addActionListener(this); p = new Panel(); add(p); btnRed = new btnRedCommand("Red", p); p.add(btnRed); btnRed.addActionListener(this); setBounds(100, 100, 200, 100); setVisible(true); } //----------------------------------------- publicvoid actionPerformed(ActionEvent e) { Command obj = (Command) e.getSource(); obj.Execute(); } //----------------------------------------- staticpublicvoid main(String argv[]) { new ExtrnCommand(); } } //========================================== class btnRedCommand extends Button implements Command { Panel p; public btnRedCommand(String caption, Panel pnl) { super(caption); p = pnl; } publicvoid Execute() { p.setBackground(Color.red); } } //------------------------------------------ class fileOpenCommand extends MenuItem implements Command { Frame fr; public fileOpenCommand(String caption, Frame frm) { super(caption); fr = frm; } publicvoid Execute() { FileDialog fDlg = new FileDialog(fr, "Open file"); fDlg.show(); } } //------------------------------------------- class fileExitCommand extends MenuItem implements Command { public fileExitCommand(String caption) { super(caption); } publicvoid Execute() { System.exit(0); } }
Related examples in the same category