📄 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);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -