import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * @author Dave Matuszek
 * @version Apr 12, 2005
 */
public class ThreadExample extends JFrame {
    JLabel display = new JLabel("Clock");
    JButton startButton = new JButton("Start");
    JButton pauseButton = new JButton("Pause");
    JButton resumeButton = new JButton("Resume");
    JButton stopButton = new JButton("Stop");
    Clock clock;

    public static void main(String[] args) {
        ThreadExample example = new ThreadExample();
        example.createGui();
    }

    private void createGui() {
        Container pane = getContentPane();
        pane.setLayout(new GridLayout(5, 1));
        pane.add(display);
        pane.add(startButton);
        pane.add(pauseButton);
        pane.add(resumeButton);
        pane.add(stopButton);
        ActionListener listener = new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                JButton source = (JButton)event.getSource();
                if (source == startButton) {
                    clock = new Clock(display);
                    clock.start();
                }
                else if (source == pauseButton) {
                    clock.paused = true;
                }
                else if (source == resumeButton) {
                    clock.paused = false;
                }
                else if (source == stopButton) {
                    clock.stopped = true;
                }
            }            
        };
        startButton.addActionListener(listener);
        pauseButton.addActionListener(listener);
        resumeButton.addActionListener(listener);
        stopButton.addActionListener(listener);
        pack();
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
