一个关于内部类的小例子
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 }