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; /* Author: James Tam Version: 2015 */ 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); } }