各位好!我用jdk1.3的版本实现了在frame上贴图。在完整的java程序里能编译通过,也能出现结果。但我把它跟控制vrml场景的java程序联系时出现了,不能读其贴图的图片的错误信息,象这样:
com.ms.security.SecurityExceptionEx[text.<init>]: cannot access file 1.jpg
我找不初是什么毛病,我把它写出来,渴望得大家的帮忙!
myframe函数:
import java.awt.*;
import java.util.*;
import java.awt.image.*;public class myframe extends Frame
{ Image image1;
Image image2;
Image image3;
Image image4;
Image image5;
Image image6;
vrmlScript vrmlscript;
private int num;
public myframe (vrmlScript owner1)
{
vrmlscript=owner1;
setTitle("控制面板");
setSize(230,150);
image1=Toolkit.getDefaultToolkit().getImage("1.jpg");
image2=Toolkit.getDefaultToolkit().getImage("2.jpg");
image3=Toolkit.getDefaultToolkit().getImage("3.jpg");
image4=Toolkit.getDefaultToolkit().getImage("4.jpg");
image5=Toolkit.getDefaultToolkit().getImage("5.jpg");
image6=Toolkit.getDefaultToolkit().getImage("6.jpg");
show();
}
public void paint(Graphics g)
{
g.drawImage(image1,0,30,this);
g.drawImage(image2,0,130,this);
g.drawImage(image3,0,260,this);
g.drawImage(image4,0,390,this);
g.drawImage(image5,0,520,this);
g.drawImage(image6,0,650,this); }
public boolean action(Event event1,Object o)
{
if(event1.target instanceof Button)
{
String current=(String )event1.arg;
if(current.equals("People1"))
{
num=1;
}
else if(current.equals("People2"))
{
num=2;
}
else if(current.equals("People3"))
{
num=3;
}
else if(current.equals("People4"))
{
num=4;
}
else if(current.equals("People5"))
{
num=5;
}
else if(current.equals(" Bird "))
{
num=6;
}
return true;
}
return true;
}
public boolean handleEvent(Event event1)
{
if( event1.id==Event.WINDOW_DESTROY )//|| event1.target==done)
{
hide();
dispose();
System.exit(0);
return true;
}
return super.handleEvent(event1);
}
/* public static void main(String args[])
{
text teller=new text();
}
*/
} 与vrml场景联系java程序:
import vrml.*;
import vrml.field.*;
import vrml.node.*;
public class vrmlScript extends Script
{
myframe next1;
Browser b;
Node tt1;
private int num=0;
private int flag1=0;
private int flag2=0; private SFBool get1;
public void setvalue( )
{
flag1++;
if( flag1>0 && flag1<100)
get1.setValue(true);
}
public void initialize()
{
next1=new myframe(this);
tt1=(Node)((SFNode)getField("base1")).getValue();
get1=(SFBool)getEventIn("get1");
b=getBrowser();
}
public void processEvent(Event e)
{
if(e.getName().equals("get1")==true)
{
}// if(e.getName().equals("get")==true)
}// public void processEvent(Event e)
}这是vrml程序:
#VRML V2.0 utf8Background {
backUrl "sky.jpg"
bottomUrl "sky.jpg"
frontUrl "sky.jpg"
leftUrl "sky.jpg"
rightUrl "sky.jpg"
topUrl "sky.jpg"
}
Viewpoint {
position 0 1.5 420
}
DEF tts1 Transform { translation 0 0 0
}
DEF ss Script {
eventIn SFBool get1 field SFNode base1 USE tts1 field MFString url "url2.wrl"
mustEvaluate TRUE
url "vrmlScript.class"
}我把一些与问题无关的代码删了。
麻烦大家帮我看看!
小弟先谢谢了!!!
com.ms.security.SecurityExceptionEx[text.<init>]: cannot access file 1.jpg
我找不初是什么毛病,我把它写出来,渴望得大家的帮忙!
myframe函数:
import java.awt.*;
import java.util.*;
import java.awt.image.*;public class myframe extends Frame
{ Image image1;
Image image2;
Image image3;
Image image4;
Image image5;
Image image6;
vrmlScript vrmlscript;
private int num;
public myframe (vrmlScript owner1)
{
vrmlscript=owner1;
setTitle("控制面板");
setSize(230,150);
image1=Toolkit.getDefaultToolkit().getImage("1.jpg");
image2=Toolkit.getDefaultToolkit().getImage("2.jpg");
image3=Toolkit.getDefaultToolkit().getImage("3.jpg");
image4=Toolkit.getDefaultToolkit().getImage("4.jpg");
image5=Toolkit.getDefaultToolkit().getImage("5.jpg");
image6=Toolkit.getDefaultToolkit().getImage("6.jpg");
show();
}
public void paint(Graphics g)
{
g.drawImage(image1,0,30,this);
g.drawImage(image2,0,130,this);
g.drawImage(image3,0,260,this);
g.drawImage(image4,0,390,this);
g.drawImage(image5,0,520,this);
g.drawImage(image6,0,650,this); }
public boolean action(Event event1,Object o)
{
if(event1.target instanceof Button)
{
String current=(String )event1.arg;
if(current.equals("People1"))
{
num=1;
}
else if(current.equals("People2"))
{
num=2;
}
else if(current.equals("People3"))
{
num=3;
}
else if(current.equals("People4"))
{
num=4;
}
else if(current.equals("People5"))
{
num=5;
}
else if(current.equals(" Bird "))
{
num=6;
}
return true;
}
return true;
}
public boolean handleEvent(Event event1)
{
if( event1.id==Event.WINDOW_DESTROY )//|| event1.target==done)
{
hide();
dispose();
System.exit(0);
return true;
}
return super.handleEvent(event1);
}
/* public static void main(String args[])
{
text teller=new text();
}
*/
} 与vrml场景联系java程序:
import vrml.*;
import vrml.field.*;
import vrml.node.*;
public class vrmlScript extends Script
{
myframe next1;
Browser b;
Node tt1;
private int num=0;
private int flag1=0;
private int flag2=0; private SFBool get1;
public void setvalue( )
{
flag1++;
if( flag1>0 && flag1<100)
get1.setValue(true);
}
public void initialize()
{
next1=new myframe(this);
tt1=(Node)((SFNode)getField("base1")).getValue();
get1=(SFBool)getEventIn("get1");
b=getBrowser();
}
public void processEvent(Event e)
{
if(e.getName().equals("get1")==true)
{
}// if(e.getName().equals("get")==true)
}// public void processEvent(Event e)
}这是vrml程序:
#VRML V2.0 utf8Background {
backUrl "sky.jpg"
bottomUrl "sky.jpg"
frontUrl "sky.jpg"
leftUrl "sky.jpg"
rightUrl "sky.jpg"
topUrl "sky.jpg"
}
Viewpoint {
position 0 1.5 420
}
DEF tts1 Transform { translation 0 0 0
}
DEF ss Script {
eventIn SFBool get1 field SFNode base1 USE tts1 field MFString url "url2.wrl"
mustEvaluate TRUE
url "vrmlScript.class"
}我把一些与问题无关的代码删了。
麻烦大家帮我看看!
小弟先谢谢了!!!
但是拿到别人的,就不好使了,(在五个人的电脑上试验了)。