import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Counter2 extends JFrame { private int count; private JButton b = new JButton("Push Me!"); private JLabel label = new JLabel(generateLabel()); private Container c = getContentPane(); public static void main(String[] args) { Counter2 f = new Counter2(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(200,100); f.setVisible(true); } public Counter2() { c.setLayout( new FlowLayout(FlowLayout.LEFT) ); c.add(b); c.add(label); b.addActionListener(new LabelMaker()); } private String generateLabel() { return "Count: "+Integer.toString(count); } // Nested class: private class LabelMaker implements ActionListener { public void actionPerformed(ActionEvent e) { count++; label.setText(generateLabel()); } } }