⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctrpanel.java

📁 这是几个JAVA和VRML结合的实例
💻 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);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -