画布颜色

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:39:01
这样为什么改变不了画布的颜色?应该怎么解决?谢谢!
import java.awt.*;
import java.awt.event.*;
public class Test
{

public static void main(String[] args)
{
new MyFrame("");
}
}
class MyFrame extends Frame implements ActionListener
{
Button b1=new Button("确定");
Color c=null;
MyCanvas mc=new MyCanvas(c);
public MyFrame(String ss)
{
super(ss);
setLayout(new FlowLayout());
setBounds(200,200,200,200);
add(b1);add(mc);
setVisible(true);
b1.addActionListener(this);
validate();
}
public void actionPerformed(ActionEvent e)
{
c=Color.blue;
mc.repaint();
}
}
class MyCanvas extends Canvas
{
Color c=null;
public MyCanvas(Color c)
{
this.c=c;
setSize(100,100);
}
public void paint(Graphics g)
{
g.setColor(c);
g.fillOval(0,0,100,10

你改变的c是MyFrame里面的c
MyCanvas里面的c又没有变 怎么会在repaint的时候改变颜色呢?
MyCanvas里面的c只在创建对象的时候在构造方法里被赋值了一次 后面点击按钮根本没有改变这个对象啊