import java.util.Random;

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;


public class MyFrame extends JFrame
{
    public static final String DEFAULT_LABEL_STRING = "Number presses: ";
    public static final int WIDTH = 700;
    public static final int HEIGHT = 300;

    private MyButton frameButton;
    private MyButton labelButton;
    private JLabel aLabel;
    private int numPresses;

    public MyFrame()
    {
	numPresses = 0;
	initializeControls();
	initializeFrame();
    }

    public void addControls()
    {
	add(frameButton);
	add(labelButton);
	add(aLabel);
    }

    public JLabel getLabel()
    {
	return(aLabel);
    }

    public int getNumPresses()
    {
	return(numPresses);
    }

    public void incrementPresses()
    {
	numPresses++;
    }

    public void initializeFrame()
    {
	setSize(WIDTH,HEIGHT);
	setLayout(null);
	addControls();
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void initializeControls()
    {
	ImageIcon anIcon = new ImageIcon("IconPic.gif");
	frameButton = new MyButton("Affects window",anIcon,this);
	frameButton.setBounds(50,100,150,20);
	frameButton.addActionListener(new FrameButtonListener());
	labelButton = new MyButton("Affects label",anIcon,this);
	labelButton.setBounds(250,100,150,20);
	labelButton.addActionListener(new LabelButtonListener());
	aLabel = new JLabel(DEFAULT_LABEL_STRING + Integer.toString(numPresses));
	aLabel.setBounds(450,100,150,20);
    }
}