// LeftRight example from L&L, page 258, modified // Illustrates one listener for multiple buttons import javax.swing.*; import java.awt.*; import java.awt.event.*; class LeftRight { public static void main (String[] args) { JFrame frame = new JFrame("Left-Right"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); LeftRightPanel panel = new LeftRightPanel (); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } } class LeftRightPanel extends JPanel implements ActionListener { JButton left, right; JLabel label; JPanel buttonPanel; public LeftRightPanel () { left = new JButton ("Left"); right = new JButton ("Right"); left.addActionListener(this); right.addActionListener(this); label = new JLabel("Push a button"); buttonPanel = new JPanel(); buttonPanel.setPreferredSize (new Dimension (200, 40)); buttonPanel.setBackground(Color.blue); buttonPanel.add(left); buttonPanel.add(right); setBackground (Color.cyan); setPreferredSize (new Dimension (200, 100)); add(label); add(buttonPanel); } public void actionPerformed (ActionEvent event) { if (event.getSource () == left) label.setText ("Left"); else label.setText ("Right"); } }