1 import javax.swing.*;
2 import java.awt.event.*;
3 import java.awt.*;
4 public class InnerButton {
5 JFrame frame;
6 JButton b;
7
8 public static void main(String[] args){
9 InnerButton gui=new InnerButton();
10 gui.go();
11 }
12 public void go(){
13 frame=new JFrame();
14 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
15
16 b=new JButton("A");
17 b.addActionListener(new BListener()); //括号里相当于声明了一个BListener()对象。因为,BListener()是一个内部类。通常它是绑定在某个实例上的。
18
19 frame.getContentPane().add(BorderLayout.SOUTH, b);
20 frame.setSize(300, 300); 21 frame.setVisible(true);
22
23
}
24 class BListener implements ActionListener{ //内部类。
25 public void actionPerformed(ActionEvent e){
26 if(b.getText().equals("A")){ //getText()得到b的Text。b是一个全局变量。为什么在这里不定义为一个静态变量呢。
27 b.setText("B");
28 }else{
29 b.setText("A");
30 }
31 }
32 }
33 }