import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class ButtonInnerClassTest {
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable(){
public void run()
{
ButtonFrame2 frame = new ButtonFrame2();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

}
});
}
}class ButtonFrame2 extends JFrame
{
public ButtonFrame2()
{
setTitle("ButtonInnerClassTest");
setSize(DEFAULT_WIDTH,DEFAULT_HIGHT);

JPanel buttonPanel = new JPanel();
makeButton("yellow",Color.YELLOW); //调试报错
//makeButton("blue",Color.BLUE);
//makeButton("red",Color.RED);
add(buttonPanel); }

public void makeButton(String name,final Color backgroundColor)
{
JButton button = new JButton(name);
buttonPanel.add(button);
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
buttonPanel.setBackground(backgroundColor);
}
});
}
private JPanel buttonPanel;
public static final int DEFAULT_WIDTH =300;
public static final int DEFAULT_HIGHT =200;
}