package 事件;import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;public class TEST extends Applet implements ActionListener {
Panel p;
  Button btn;
  TextField t;
  Color c;
 Random r1,r2,r3;
  public void init()
  {   
  r1=new Random();
  int t1=r1.nextInt(255);
  r2=new Random();
  int t2=r2.nextInt(255);
  r3=new Random();
  int t3=r3.nextInt(255);
  btn=new Button("改变颜色");
  t=new TextField("helloworld");
  c=new Color(t1,t2,t3);
  btn.addActionListener(this);
  add(t);
  add(btn);

 
  }
  
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==btn){
t.setBackground(c);

}
repaint();

}
}

解决方案 »

  1.   


    import java.applet.Applet;
    import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.Color;
    import java.awt.Panel;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Random;public class TEST extends Applet implements ActionListener {
    Panel p;
    Button btn;
    TextField t; public void init() {
    btn = new Button("改变颜色");
    t = new TextField("helloworld");
    btn.addActionListener(this);
    add(t);
    add(btn);
    } /**
     * 改变颜色方法
     * @return
     */
    public Color change(){
    Random r1, r2, r3;
    Color c;
    r1 = new Random();
    int t1 = r1.nextInt(255);
    r2 = new Random();
    int t2 = r2.nextInt(255);
    r3 = new Random();
    int t3 = r3.nextInt(255);
    c = new Color(t1, t2, t3);
    return c;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if (e.getSource() == btn) {
    t.setBackground(change());
    }
    repaint();
    }
    }
    init()方法只能初始化一次,所以自然就不会变咯
      

  2.   

    你可以尝试每次点击button,就实例化一个TEST实例,然后替换之前的实例。但是需要考虑性能和内存。