下面是一个简单的applet,我设置了背景色为黑,可是运行的结果却不是;
把背景改成其它颜色出没有反应。哪位能给我解释一下这是怎么回事,不胜感谢!!import javax.swing.*;
import java.awt.*;
public class SimpleApplet extends JApplet {
private String text = "This is a simple Applet";
private int count = 0;
public void init(){
setBackground(Color.black);  //backGround 设为black
}
public void paint(Graphics g ){
System.out.println(count + ": painting()...");
count ++;
    g.setColor(Color.red);
g.drawString(text,15,25);
}
}

解决方案 »

  1.   

    两处问题:
    第一,颜色不应该设置给Applet对象。应该设置到所包含的容器面板。不然,颜色在底层,被前面的容器挡住了。你看到的不是你所设置的最底层的颜色,而是位于其上的容器的颜色。
    getContentPane().setBackground(Color.black);
    第二,你的paint方法,一定要调用一下其超类的画方法super.paint(g);。不然,所有画的动作都只是你所进行的那一点,超类的工作全部丢失了。而其实JApplet里面进行了非常多的工作,只是我们看不到而已。这样public class SimpleApplet extends JApplet {
    private String text = "This is a simple Applet";
    private int count = 0; public void init() {
     getContentPane().setBackground(Color.black); setBackground(Color.black); // backGround 设为black
    } public void paint(Graphics g) {
    super.paint(g);
    System.out.println(count + ": painting()...");
    count++;
    g.setColor(Color.red); g.drawString(text, 15, 25);
    }
    }
      

  2.   

       如果楼主的class 是从java的基础类Applet继承的那么上面的代码是没有问题的,
    而从JApplet就要像二楼的兄弟说的那样去做了,二者有些小区别。
       
       说点个人看法这个东西现在已经基本没什么用了。早些时候,还没有出现Flash时,
    Applet常用来做网页特效,但是当时网速太慢,Applet下载导致整个网页速度太低,
    反而给Applet甚至是Java带来了负面的影响。加上现在Flash的流行,使得很多人对
    Applet产生了怀疑,其实Applet不是网页特效,不是ActiveX等价品,不是用来画一个圆的。
    它是Java提供的一个客户端GUI容器,记住它只是个容器。至于它里面放什么,就要看怎么用了。