package ex4; import java.awt.BorderLayout; 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.JPanel; import javax.swing.SwingConstants; import javax.swing.WindowConstants; public class Counter extends JPanel { int value = 0; public Counter() { super(new BorderLayout()); JFrame frame = new JFrame("Counter"); frame.setContentPane(this); // adds the panel final JLabel display = new JLabel("0"); display.setHorizontalAlignment(SwingConstants.CENTER); add(display, BorderLayout.CENTER); JButton increment = new JButton("Increment"); add(increment, BorderLayout.SOUTH); increment.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { value++; display.setText(Integer.toString(value)); repaint(); } }); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { new Counter(); } }); } }