/* Uses an inner adapter class. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Inner extends JFrame { private Button print = new Button("Print"); private Button clear = new Button("Clear"); private Label message = new Label("Message goes here"); private InnerAdapter adapter = new InnerAdapter(); Inner() { Container c = getContentPane(); c.setLayout(new FlowLayout()); c.add(message); c.add(print); c.add(clear); print.addActionListener(adapter); clear.addActionListener(adapter); } public class InnerAdapter implements ActionListener { public void actionPerformed(ActionEvent event) { Object source = event.getSource(); if (source == print) message.setText(event.getActionCommand()); else if (source == clear) message.setText(""); } } public static void main(String[] args) { Inner frame = new Inner(); frame.setTitle("Inner Adapter"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 100); frame.setVisible(true); } }