我是Win xp的操作系统,编写的java Applet用Appletviewer可以正常运行,而在IE浏览器中却是一个白框,左上角一个小叉(无法显示运行结果);在Windows 2000的操作系统中同样不能显示运行结果,用鼠标指在Applet显示区,浏览器窗口的状态栏中会显示class xx(类名)not found。请各位高手指教怎样在IE浏览器中也可以看到Applet的运行结果呢?
调试欢乐多
<applet code="yourclass.class" width="300" height="100"></applet>
将jre的安装目录下的\lib\security目录中的java.policy文件备份后,
再编辑java.policy为下面的内容:// Standard extensions get all permissions by defaultgrant {
permission java.security.AllPermission;
};
[email protected]
import java.util.*;
import java.awt.*;
import java.applet.Applet; public class Graph extends Applet {
int depth, radius; public void init() {
float value;
String at = getParameter("width");
radius = (at != null) ? Integer.valueOf(at).intValue() : 100;
at = getParameter("depth");
depth = (at != null) ? Integer.valueOf(at).intValue() : 20;
at = getParameter("values");
PieChartCanvas c = new PieChartCanvas(radius, depth);
setLayout(new BorderLayout()); // Create Hashtable to map color name (String) to Color type
Hashtable colors = new Hashtable();
colors.put("green", Color.green);
colors.put("red", Color.red);
colors.put("blue", Color.blue);
colors.put("yellow", Color.yellow);
colors.put("magenta", Color.magenta);
colors.put("cyan", Color.cyan);
colors.put("orange", Color.orange);
colors.put("pink", Color.pink);
colors.put("white", Color.white);
colors.put("black", Color.black); // "value-color,value-color,..."
StringTokenizer t = new StringTokenizer(at, ",");
String s;
int i;
while (t.hasMoreTokens()) {
s = t.nextToken();
i = s.indexOf('-');
value = Float.valueOf(s.substring(0, i)).floatValue();
c.addSlice(value, (Color)colors.get(s.substring(i + 1)));
} resize(c.getMinimumSize().width, c.getMinimumSize().height);
add("Center", c);
}
} class PieChartCanvas extends Canvas {
/*
** author Ciaran Treanor [email protected]
*/
final double aspectFudge = 2.5;
int radius, depth, called = 1, numSlices = 0;
float total = 0, value[] = new float[10];
Color color[] = new Color[10];
Graphics offGraphics;
Image gfxBuff; public PieChartCanvas(int radius, int depth) {
this.value = value;
this.color = color;
this.radius = radius;
this.depth = depth;
} public void paint(Graphics g) {
int startAngle;
float angle;
Dimension d = getSize(); if(gfxBuff == null) {
gfxBuff = createImage(d.width, d.height);
offGraphics = gfxBuff.getGraphics();
offGraphics.setColor(getBackground());
offGraphics.fillRect(0, 0, d.width, d.height);
} // do the 3d effect
for(int x = depth; x >= 1; x--) {
startAngle = -45;
for(int i = 0; i < numSlices; i++) {
offGraphics.setColor(color[i].darker());
angle = Math.round(360 * (value[i] / total));
offGraphics.fillArc(0, x, radius, (int)(radius / aspectFudge),
startAngle, (int)angle);
startAngle += angle;
}
} // draw the pie slice
startAngle = -45;
for(int i = 0; i < numSlices; i++) {
offGraphics.setColor(color[i]);
angle = Math.round(360 * (value[i] / total));
offGraphics.fillArc(0, 0, radius, (int)(radius / aspectFudge),
startAngle, (int)angle);
startAngle += angle;
}
g.drawImage(gfxBuff, 0, 0, null);
} public void addSlice(float value, Color color) {
this.value[numSlices] = value;
this.color[numSlices++] = color;
total += value;
} public Dimension getPreferredSize() {
return getMinimumSize();
} public Dimension getMinimumSize() {
return new Dimension(radius, (int)((radius / aspectFudge) + depth));
}
}<html>
<applet code="Graph.class" width="300" height="100"></applet>
</html>哪个帮忙运行下看你的机器上是怎么样的?
用APP行 可是把它保存是HTML格式的网页 然后打开就不行了!!!
然后再打开IE