Java tutorial
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class DebugWinTest extends JFrame implements ActionListener { private JButton aButton = new JButton("button"); private DebugWin dw = new DebugWin(); public DebugWinTest() { setTitle("DebugWinTest"); setSize(100, 100); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); JPanel pane = new JPanel(); pane.add(aButton); aButton.addActionListener(this); getContentPane().add(pane); } public void actionPerformed(ActionEvent evt) { dw.print("Event = " + evt); } public static void main(String[] args) { JFrame f = new DebugWinTest(); f.show(); } class DebugWin extends JFrame { private JTextArea output = new JTextArea(); public void print(Object ob) { output.append("\n" + ob); } public DebugWin() { setTitle("DebugWin"); output.setEditable(false); output.setText("[DebugWin]"); getContentPane().add(new JScrollPane(output), "Center"); setSize(300, 200); setLocation(200, 200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { setVisible(false); } }); show(); } } }