/* * 1.1 code. */ import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class ComponentEventDemo extends Applet implements ComponentListener, ActionListener { TextArea display; Frame aFrame; public boolean showIt = false; final static String SHOW = "show"; final static String CLEAR = "clear"; String newline; public void init() { newline = System.getProperty("line.separator"); setLayout(new BorderLayout()); display = new TextArea(5, 20); display.setEditable(false); add("Center", display); Button b1 = new Button("Start playing..."); b1.setActionCommand(SHOW); b1.addActionListener(this); add("North", b1); Button b2 = new Button("Clear"); b2.setActionCommand(CLEAR); b2.addActionListener(this); add("South", b2); aFrame = new Frame("A Frame"); ComponentPanel p = new ComponentPanel(this); aFrame.addComponentListener(this); p.addComponentListener(this); aFrame.add("Center", p); aFrame.pack(); aFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { showIt = false; aFrame.setVisible(false); } }); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == SHOW) { showIt = true; aFrame.setVisible(true); } else { //CLEAR display.setText(""); } } public void stop() { aFrame.setVisible(false); } public void start() { if (showIt) { aFrame.setVisible(true); } } protected void displayMessage(String message) { try { display.append(message + newline); } catch (Exception event) {} } public void componentHidden(ComponentEvent e) { displayMessage("componentHidden event from " + e.getComponent().getClass().getName()); } public void componentMoved(ComponentEvent e) { displayMessage("componentMoved event from " + e.getComponent().getClass().getName()); } public void componentResized(ComponentEvent e) { displayMessage("componentResized event from " + e.getComponent().getClass().getName()); } public void componentShown(ComponentEvent e) { displayMessage("componentShown event from " + e.getComponent().getClass().getName()); } } class ComponentPanel extends Panel implements ItemListener { Label label; Checkbox checkbox; ComponentPanel(ComponentEventDemo listener) { setLayout(new BorderLayout()); label = new Label("This is a Label", Label.CENTER); add("Center", label); checkbox = new Checkbox("Label visible", true); checkbox.addItemListener(this); add("South", checkbox); label.addComponentListener(listener); checkbox.addComponentListener(listener); } public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { label.setVisible(true); } else { label.setVisible(false); } } }