import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Bclass
{
public static void main(String [] args){
AFrame f1=new AFrame();
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setTitle("测试");
f1.setSize(400,300);
f1.show();
}
}
class AFrame extends JFrame
{
AFrame(){
Container aaa=getContentPane();
APanel panel1=new APanel();
aaa.add(panel1);
}
}
class APanel extends JPanel
{
APanel(){
JButton bt1=new JButton("蓝色");
JButton bt2=new JButton("红色");
JButton bt3=new JButton("黄色");
MyAction act=new MyAction(Color.blue);
MyAction act1=new MyAction(Color.red);
MyAction act2=new MyAction(Color.yellow); bt1.addActionListener(act);
bt2.addActionListener(act1);
bt3.addActionListener(act2);

add(bt1);
add(bt2);
add(bt3);
}
private class MyAction implements ActionListener
{
MyAction(Color color){
public void actionPerformed(ActionEvent e){
setBackground(color);
}
}

}
}

解决方案 »

  1.   

    最后一个类错了,基础太差了,怎么都喜欢一上来就写GUI程序,先写10000行的命令行调试代码出来先
      

  2.   

    private class MyAction implements ActionListener
    {
        MyAction(Color color){
            this.color = color;
        }    public void actionPerformed(ActionEvent e){
           Component c = (Component)e.getSource();
           c.setBackground(color);
        }
    }
      

  3.   

    明白了,谢谢大家指点,以后还要大家照顾,岁数大了,初学java,希望大家指教!