import vrml.external.Browser;
import vrml.external.Node;
import vrml.external.field.EventInSFColor;
public class changecolor extends Applet{
Scrollbar scrBar[]=new Scrollbar[3];
Label labelColor[]=new Label[3];
Label labelDemo;
Browser browser;
Node myMaterial;
String Text[]={"R=","G=","B="};
boolean isScenceLoading=true;
public void start(){
while (isScenceLoading){
try{
browser=Browser.getBrowser(this);
myMaterial=(Node)(browser.getNode("ConeColor"));
isScenceLoading=false;
labelDemo.setText("TestColor");
}
catch(Exception e){labelDemo.setText("VRML Loading");}
}
}
public void init(){
super.init();
setLayout(null);
resize(240,240);
setBackground(Color.orange);
for(int i=0;i<3;i++){
scrBar=new Scrollbar(Scrollbar.VERTICAL);
add(scrBar);
scrBar.reshape(100+80*i,5,20,160);
scrBar.setValues(50,0,0,10);
labelColor=new Label(Text+scrBar.getValue(),Label.LEFT);
add(labelColor);
labelColor.setBackground(Color.green);
labelColor.reshape(100+80*i,165,40,20);
}
labelDemo=new Label("TestColor",Label.CENTER);
add(labelDemo);
labelDemo.reshape(320,70,80,80);
labelDemo.setBackground(new Color(122,122,122));
}
public boolean handleEvent(Event event){
for(int i=0;i<3;i++){
if (event.id==Event.SCROLL_LINE_UP&&event.target==scrBar){
setColorLabel(event,i);
return true;
}
else if(event.id==Event.SCROLL_LINE_DOWN&&event.target==scrBar){
setColorLabel(event,i);
return true;
}
else if(event.id==Event.SCROLL_ABSOLUTE&&event.target==scrBar){
setColorLabel(event,i);
return true;
}
}
return super.handleEvent(event);
}
public void setColorLabel(Event ev,int i){
Color demoColor;
labelColor.setText(Text+scrBar.getValue());
demoColor=new Color((int)(2.55*scrBar[0].getValue()),
(int)(2.55*scrBar[1].getValue()),
(int)(2.55*scrBar[2].getValue())
);
labelDemo.setBackground(demoColor);
float value[]=new float[3];
EventInSFColor newColor=(EventInSFColor)myMaterial.getEventIn("set_diffuseColor");
for(i=0;i<3;i++)
value=(float)(scrBar.getValue()/100f);
newColor.setValue(value);
}
}
编译通不过,找不到external下面的类,求知道的高手解决下,谢谢了。 |