第一次接触这种真的看不大懂,求前辈指点一下,谢谢了
import java.awt.*;
import java.applet.*;
/*
点一下Color按钮就改变mycanvas的颜色
*/
public class CanvasTest extends Applet
{
MyCanvas mycanvas=new MyCanvas();
public void init()

setLayout(new BorderLayout());
Button button = new Button("Color");
add("West",new Button("papapa"));//加入的这个按钮为什么就没有反应..
add("North",button); //为什么这个按钮有反应,看不出和上面那个有什么区别
    add("Center",mycanvas);
    resize(200,200);
}
public boolean action(Event evt, Object arg)//经常看到这个函数,两个参数究竟想表达什么
{
  if(arg=="Color")
   mycanvas.swapColor();
  return true;
}
}class MyCanvas extends Canvas
{
Color color; 
    public MyCanvas()
    {  
     color=Color.red; 
    }
    public void paint(Graphics g)
    {  
     g.setColor(color); 
     g.fillRect(20,20,100,100);
     g.setColor(Color.GREEN);
     g.drawString("CANVAS",40,40);
    }
    public void swapColor()
    { 
     if(color==Color.black) 
     color=Color.red;
     else 
     if(color==Color.red) 
     color=Color.green;
     else
     color=Color.black;
      repaint();
    }
}

解决方案 »

  1.   

     public boolean action(Event evt, Object arg);
    是java.awt.Component的方法,已经不建议使用了,用来处理子控件的action吧.
      

  2.   

    因为这个方法设计的不够合理。
    Java doc建议使用新的ActionListener来为Button添加事件响应。
      

  3.   

    貌似你的action里面没有处理papapa这个按钮..  
    还有,  action方法已经过时.