import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; /* * JButtonExerciseSolution.java * * Created on October 8, 2005, 11:16 AM * * COP 3337 */ /** * * @author Bill Kraynek */ public class JButtonExerciseSolution { int button12Count = 0; int button22Count = 0; int button32Count = 0; JButton button12; JButton button22; JButton button32; /** Creates a new instance of JButtonExerciseSolution */ public JButtonExerciseSolution() { JFrame theFrame = new JFrame("JButtons Exercise"); JPanel thePanel = new JPanel(); thePanel.setPreferredSize(new Dimension(800,300)); thePanel.setLayout(new FlowLayout(FlowLayout.CENTER,300,20)); JPanel button1Panel = new JPanel(); button1Panel.setBackground(Color.GREEN); JLabel label1 = new JLabel("Type 1 Buttons"); JButton button11 = new JButton("Reset Type 2 Buttons"); JButton button21 = new JButton("Results of Type 2 Buttons"); button1Panel.add(label1); button1Panel.add(button11); button1Panel.add(button21); button11.addActionListener(new Button11Action()); button21.addActionListener(new Button21Action()); JScrollPane pane1 = new JScrollPane(button1Panel); thePanel.add(pane1); JPanel button2Panel = new JPanel(); button2Panel.setBackground(Color.RED); JLabel label2 = new JLabel("Type 2 Buttons can be pressed only twice"); button12 = new JButton("Button1 Type2"); button22 = new JButton("Button2 Type2"); button32 = new JButton("Button3 Type2"); button2Panel.add(label2); button2Panel.add(button12); button2Panel.add(button22); button2Panel.add(button32); button12.addActionListener(new Button12Action()); button22.addActionListener(new Button22Action()); button32.addActionListener(new Button32Action()); JScrollPane pane2 = new JScrollPane(button2Panel); thePanel.add(pane2); theFrame.getContentPane().add(thePanel); theFrame.pack(); theFrame.setVisible(true); } class Button11Action implements ActionListener { public void actionPerformed(ActionEvent e) { button12.setEnabled(true); button22.setEnabled(true); button32.setEnabled(true); button12Count = 0; button22Count = 0; button32Count = 0; } } class Button21Action implements ActionListener { public void actionPerformed(ActionEvent e) { String outputString = "Button 12 was pressed " + button12Count + " times\n"; outputString += "Button22 was pressed " + button22Count + " times\n"; outputString += "Button32 was pressed " + button32Count + " times\n"; JOptionPane.showMessageDialog(null,outputString); } } class Button12Action implements ActionListener { public void actionPerformed(ActionEvent e) { button12Count++; if( button12Count >= 2 ) button12.setEnabled(false); } } class Button22Action implements ActionListener { public void actionPerformed(ActionEvent e) { button22Count++; if( button22Count >= 2 ) button22.setEnabled(false); } } class Button32Action implements ActionListener { public void actionPerformed(ActionEvent e) { button32Count++; if( button32Count >= 2 ) button32.setEnabled(false); } } /** * @param args the command line arguments */ public static void main(String[] args) { new JButtonExerciseSolution(); } }