www.pudn.com > vrmlExample.rar > CtrPanel.java


import java.awt.*; 
import java.util.*; 
 
 
public class CtrPanel extends Frame 
{ 
   TextField TxtA, TxtS, TxtT; 
   TextField TxtDc0, TxtDc1, TxtDc2; 
   TextField TxtEc0, TxtEc1, TxtEc2; 
   TextField TxtSc0, TxtSc1, TxtSc2; 
   TextField rotation0,rotation1, rotation2,rotation3; 
 
   Panel Panela, Panels,Panelt,PanelDc, PanelEc, PanelSc, Panelr; 
 
   Control control; 
    
   float[] rgb = new float[3]; 
   float[] newrotation = new float[4]; 
 
   float val; 
   
   CtrPanel(Control owner) 
   { 
      super("CtrPanel");  
       
      Panela = new Panel(); 
      Panela.setLayout(new FlowLayout()); 
      TxtA = new TextField(10); 
      Panela.add(new Label("amibientIntensity")); 
      Panela.add(TxtA); 
 
	  Panels = new Panel(); 
	  Panels.setLayout(new FlowLayout()); 
      TxtS = new TextField(10); 
      Panels.add(new Label("shininess")); 
      Panels.add(TxtS); 
 
      Panelt = new Panel(); 
      Panelt.setLayout(new FlowLayout()); 
      TxtT = new TextField(10); 
      Panelt.add(new Label("transparency")); 
      Panelt.add(TxtT); 
 
      PanelDc = new Panel(); 
      PanelDc.setLayout(new FlowLayout()); 
      TxtDc0 = new TextField(10); 
      TxtDc1 = new TextField(10); 
      TxtDc2 = new TextField(10); 
      PanelDc.add(new Label("diffuseColor")); 
      PanelDc.add(TxtDc0); 
      PanelDc.add(TxtDc1); 
      PanelDc.add(TxtDc2); 
 
      PanelEc = new Panel(); 
      PanelEc.setLayout(new FlowLayout()); 
      TxtEc0 = new TextField(10); 
      TxtEc1 = new TextField(10); 
      TxtEc2 = new TextField(10); 
      PanelEc.add(new Label("emissiveColor")); 
      PanelEc.add(TxtEc0); 
      PanelEc.add(TxtEc1); 
      PanelEc.add(TxtEc2); 
 
      PanelSc = new Panel(); 
      PanelSc.setLayout(new FlowLayout()); 
      TxtSc0 = new TextField(10); 
      TxtSc1 = new TextField(10); 
      TxtSc2 = new TextField(10); 
      PanelSc.add(new Label("specularColor")); 
      PanelSc.add(TxtSc0); 
      PanelSc.add(TxtSc1); 
      PanelSc.add(TxtSc2); 
 
      Panelr = new Panel();  Panelr.setLayout(new FlowLayout()); 
      rotation0 = new TextField(10); 
      rotation1 = new TextField(10); 
      rotation2 = new TextField(10); 
      rotation3 = new TextField(10); 
      Panelr.add(new Label("rotation")); 
      Panelr.add(rotation0); 
	  Panelr.add(rotation1); 
      Panelr.add(rotation2); 
      Panelr.add(rotation3); 
 
 
      setLayout(new GridLayout(7, 1, 1, 1)); 
      add(Panela);  
      add(Panels);  
      add(Panelt); 
      add(PanelDc);  
      add(PanelEc);  
      add(PanelSc);  
      add(Panelr); 
      pack(); 
       
      control = owner; 
   } 
 
   public void map() 
   { 
      TxtA.setText("" + control.getAmb()); 
      TxtS.setText("" + control.getShi()); 
      TxtT.setText("" + control.getTrans()); 
 
      getDcolor(); 
      getEcolor(); 
      getScolor(); 
	 
	  getrot(); 
		     
      show(); 
   } 
   
   public boolean action(Event ev, Object what)  
   { 
      if(ev.id == ev.ACTION_EVENT) 
      { 
         if(ev.target==TxtA)  
         {  
         	setAmb();  
         } 
         else if( ev.target == TxtDc0|| ev.target == TxtDc1 || ev.target == TxtDc2) 
         {  
         	setDcolor();   
         } 
         else if(ev.target == TxtEc0 || ev.target == TxtEc1 || ev.target == TxtEc2) 
         {  
         	setEcolor();  
         } 
         else if(ev.target == TxtS)  
         {  
         	setShi();  
         } 
         else if(ev.target == TxtSc0 || ev.target == TxtSc1 || ev.target == TxtSc2) 
         {  
         	setScolor();  
         } 
         else if(ev.target == TxtT)  
         {  
         	setTrans();  
         } 
          
         else setnewrot(); 
      } 
      return true; 
   } 
 
    void setColor(float[] rgb, TextField r, TextField g, TextField b) 
    { 
        r.setText("" + rgb[0]); 
        g.setText("" + rgb[1]); 
        b.setText("" + rgb[2]); 
    } 
 
    void getColor(TextField r, TextField g, TextField b, float[] rgb) 
    { 
       rgb[0] = (float)Float.valueOf(r.getText()).doubleValue(); 
       rgb[1] = (float)Float.valueOf(g.getText()).doubleValue(); 
       rgb[2] = (float)Float.valueOf(b.getText()).doubleValue(); 
    } 
   
  	void setrot(TextField r0, TextField r1, TextField r2, TextField r3,float[] nr) 
  	{ 
  		r0.setText("" + nr[0]); 
        r1.setText("" + nr[1]); 
        r2.setText("" + nr[2]); 
        r3.setText("" + nr[3]); 
   	} 
     
    void setAmb() 
    { 
       val = (float)Float.valueOf(TxtA.getText()).doubleValue(); 
       control.setAmb(val); 
    } 
   
    void setDcolor() 
    { 
       getColor(TxtDc0, TxtDc1, TxtDc2, rgb); 
       control.setDcolor(rgb); 
    } 
     
    void setEcolor() 
    { 
       getColor(TxtEc0, TxtEc1, TxtEc2, rgb); 
       control.setEcolor(rgb); 
    } 
   
    void setShi() 
    { 
       val = (float)Float.valueOf(TxtS.getText()).doubleValue(); 
       control.setShi(val); 
    } 
     
    void setScolor() 
    { 
       getColor(TxtSc0, TxtSc1, TxtSc2, rgb); 
       control.setScolor(rgb); 
    } 
 
    void setTrans() 
    { 
       val = (float)Float.valueOf(TxtT.getText()).doubleValue(); 
       control.setTrans(val); 
    } 
 
    public void getDcolor() 
    { 
       control.getDcolor(rgb); 
       setColor(rgb, TxtDc0, TxtDc1, TxtDc2); 
    } 
 
    void getEcolor() 
    { 
       control.getEcolor(rgb); 
       setColor(rgb, TxtEc0, TxtEc1, TxtEc2); 
    } 
 
    void getScolor() 
    { 
       control.getScolor(rgb); 
       setColor(rgb, TxtSc0, TxtSc1, TxtSc2); 
    } 
         
    void setnewrot() 
    { 
  		newrotation[0]=(float)Float.valueOf(rotation0.getText()).doubleValue(); 
  		newrotation[1]=(float)Float.valueOf(rotation1.getText()).doubleValue(); 
  		newrotation[2]=(float)Float.valueOf(rotation2.getText()).doubleValue(); 
  		newrotation[3]=(float)Float.valueOf(rotation3.getText()).doubleValue(); 
  
        control.setRotation(newrotation); 
    } 
     
    void getrot() 
    { 
    	control.getRotation(newrotation); 
    	setrot(rotation0,rotation1,rotation2,rotation3,newrotation); 
    } 
}