我的applet是从磁盘中读取数据进入一个数组中,然后应用数组中的点进行画图显示到applet中间的.经过我调试,该程序可以在jbuilder7下面运行,并且可以在jbuilder7重的html文件中运行,但是用ie打开就时,程序只能执行到初始化阶段,也就是只能画出坐标,执行读入命令时ie中的执行就结束了.所以只能显示坐标.
不知道applet读取文件的要求和路径是怎么设置的,请高手指点.以下时我的代码.
package untitled1; import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
import java.lang.Number;
import java.util.*;
import java.io.*;
import java.lang.Object.*;
import java.awt.event.*;
public class Applet1 extends Applet {
private boolean isStandalone = false;
public double shuJu[]=new double [4096];
//Initialize the applet
public void init() {
try {
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
this.setLayout(null); } public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
} public String getAppletInfo() {
return "Applet Information";
} public String[][] getParameterInfo() {
return null;
}void read(){
shuJu=new double [4096];
int shuJuCunChuZhiBiao=0;
try{
RandomAccessFile fileInput=new RandomAccessFile("shuJu.txt","rw");
this.showStatus(" 绘图开始执行");
while ((fileInput.getFilePointer()<fileInput.length())&&
(shuJuCunChuZhiBiao<shuJu.length)){
int read2;
int xunHuanZhiBiao;
read2=fileInput.read();
if(readInCheck(read2)){
char ip[]=new char[30];
xunHuanZhiBiao=0;
while(readInCheck(read2))
{
ip[xunHuanZhiBiao]=(char)read2;
xunHuanZhiBiao++;
read2=fileInput.read();
}
String s=new String(ip);
shuJu[shuJuCunChuZhiBiao]=Double.parseDouble(s);
shuJuCunChuZhiBiao++;
} }
} catch(IOException e){ }
}
/*检查输入是否合格*/
boolean readInCheck(int number) { if((number>='0'&&number<='9')||number=='+'||number=='-'||number=='.')
return true;
else
return false;
} public void paint(Graphics g){
g.drawLine(30,5,30,200);
g.drawLine(30,200,580,200);g.drawString("(um)",31,15);
g.drawLine(25,200,30,200);g.drawString("-100",5,200);
g.drawLine(25,180,30,180);g.drawString("-80",5,180);
g.drawLine(25,160,30,160);g.drawString("-60",5,160);
g.drawLine(25,140,30,140);g.drawString("-40",5,140);
g.drawLine(25,120,30,120);g.drawString("-20",5,120);
g.drawLine(25,100,30,100);g.drawString("0",10,100);
g.drawLine(25,80,30,80);g.drawString("20",5,80);
g.drawLine(25,60,30,60);g.drawString("40",5,60);
g.drawLine(25,40,30,40);g.drawString("60",5,40);
g.drawLine(25,20,30,20);g.drawString("80",5,20);
g.drawLine(30,200,30,205);g.drawString("0",30,215);
g.drawLine(94,200,94,205);g.drawString("128",90,215);
g.drawLine(158,200,158,205);g.drawString("256",155,215);
g.drawLine(222,200,222,205);g.drawString("384",218,215);
g.drawLine(286,200,286,205);g.drawString("512",282,215);
g.drawLine(350,200,350,205);g.drawString("640",346,215);
g.drawLine(414,200,414,205);g.drawString("768",410,215);
g.drawLine(478,200,478,205);g.drawString("896",474,215);
g.drawLine(542,200,542,205);g.drawString("1024",538,215);
Graphics2D g2D=(Graphics2D)g;
drawHome(g2D);
}
public void drawHome(Graphics2D g2D){
//read();
g2D.setColor(Color.red);
int i=0;
int j=60;
for(i=0;i<shuJu.length-1;i++)
{ Line2D line=new Line2D.Double(j/2,(shuJu[i]+100),(j+1)/2,(shuJu[i+1]+100));
g2D.draw(line);
j=j+1;
}
}}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货