package gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.*;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import javax.swing.Box;
import com.sun.j3d.utils.geometry.ColorCube;
import cos.ModelConstant;
import sim.World;
/*
* A Container for all the control panels (world, simulator).
* @author Louis Hugues
*/
public class ControlWindow extends JInternalFrame implements ActionListener {
//myException excp=new myException();
private JPanel panel = null;
// 3维显示面板
private JPanel panel3D = null;
// 3维canvas3d
private Canvas3D show3D = null;
private String shuoMing=null;
private TextExp text3D=null;
// 模型选择面板
private World modelWorld = null;
// 安装世界
private World installWorld = null;
private VirtureMake virtureMake = null;
private ModeSelectPanel modelSelectPanel = null;
boolean IsorNot =false;
private String fn="";
public static int num=0;
public static boolean jishistop=false;
public ControlWindow(VirtureMake virtureMake) {
super("机器人模块");
this.virtureMake = virtureMake;
this.installWorld = virtureMake.getWorld();
ModelConstant.setHM();
createGui();
}
private void createGui() {
setSize(250, 650);
panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
setContentPane(panel);
// 创建三维显示部分
panel3D = new JPanel();
modelWorld = new World();
modelWorld.createBanchGroupVRML("miehuo\\huanying.wrl");
show3D = modelWorld.getCanvas3D();
show3D.setPreferredSize(new Dimension(240, 240));
panel3D.add(show3D);
text3D=new TextExp();
text3D.setPreferredSize(new Dimension(240, 100));
// 创建模型选择部分
modelSelectPanel = new ModeSelectPanel(this);
// 布局
panel.add(panel3D);
panel.add(Box.createRigidArea(new Dimension(0, 5)));
panel.add(text3D);
panel.add(modelSelectPanel);
panel.add(Box.createRigidArea(new Dimension(0, 5)));
panel.add(modelSelectPanel.getButtonPanel());
pack();
}
public void actionPerformed(ActionEvent event) {
ActionEvent e= event;
//String eventsourcestring=event.getSource();
//System.out.println(eventsourcestring);
//System.out.println("qqqqqqqqqqqqqqqqqqq");
//System.out.println(e.getSource());
if (event.getActionCommand() == ModeSelectPanel.ROBOT) {
modelWorld.detachAll();
//installWorld.detachAll();
String fileName = ModeSelectPanel.selectedRadioButtonToFileName(event);
modelWorld.createBanchGroupVRML(fileName);
//installWorld.createBanchGroupVRML(fileName);
shuoMing=ModeSelectPanel.jShuoMing;
text3D.setText(shuoMing);
IsorNot=true;
}
if(event.getActionCommand() != ModeSelectPanel.CHECK){
if(IsorNot){
if (event.getActionCommand() == ModeSelectPanel.INSTALL) {
//System.out.println(event.paramString());
num++;
IsorNot=false;
fixModel(true, e);
}
if (event.getActionCommand() == ModeSelectPanel.UNINSTALL) {
IsorNot=false;
fixModel(false, e);
}
} else{
JOptionPane.showMessageDialog(modelSelectPanel, "请先选择部件!");
}
}
if (event.getActionCommand() == ModeSelectPanel.CHECK) {
//System.out.println(installWorld.haveFalse()) ;
IsorNot=false;
if(installWorld.haveFalse())
JOptionPane.showMessageDialog(modelSelectPanel, "机器人组装错误!请仔细检查!");
else{
JOptionPane.showMessageDialog(modelSelectPanel, "机器人组装成功!");
jishistop=true;
}
}
}
public void fixModel(boolean flag,ActionEvent e){
//ActionEvent ee=e;
//String fileName = ModeSelectPanel.selectedRadioButtonToFileName(ee);
//System.out.println("1111111111111111111111111111111111111");
if (ModeSelectPanel.jRadioText.endsWith("机器人")) {
//String fileName = ModeSelectPanel.selectedRadioButtonToFileName(ee);
//System.out.println(ModeSelectPanel.jRadioFile);
virtureMake.setFileName(ModeSelectPanel.jRadioFile);
virtureMake.createBanchGraph();
ModelConstant.ROBOT = ModeSelectPanel.jRadioText;
//installWorld.detachAll();
if (ModeSelectPanel.jRadioText.equals("灭火机器人")) {
installWorld.createBanchGroupVRML("miehuo\\miehuo.wrl");}
/*if (ModeSelectPanel.jRadioText.equals("战斗机器人")) {
installWorld.createBanchGroupVRML("zhandou\\zhandou.wrl");}
if (ModeSelectPanel.jRadioText.equals("太阳能机器人")) {
installWorld.createBanchGroupVRML("taiyang\\taiyang.wrl");}
if (ModeSelectPanel.jRadioText.equals("太空机器人")) {
installWorld.createBanchGroupVRML("taikong\\taikong.wrl");}*/
if (ModeSelectPanel.jRadioText.equals("足球_进攻机器人")) {
installWorld.createBanchGroupVRML("soccer\\jingong.wrl");}
if (ModeSelectPanel.jRadioText.equals("足球_防守机器人")) {
installWorld.createBanchGroupVRML("soccer\\fangshou.wrl");}
//installWorld.haveFalse();
installWorld.removeAllChildrenVRML();
JOptionPane.showMessageDialog(modelSelectPanel, "准备就绪,点击下一页继续!");
} else
if (ModeSelectPanel.jRadioText.equals("车体1")) {
if (ModelConstant.ROBOT.equals("灭火机器人")) {
installWorld.setChildVRML(0, flag);
installWorld.setChildVRML(ModelConstant.MIEHUO_HM.get("body"),flag);
JOptionPane.showMessageDialog(modelSelectPanel, "操作成功,请继续选择或点击下一页!");
} else {
showDialog(flag);
}
} else if (ModeSelectPanel.jRadioText.equals("车体2")) {
if (ModelConstant.ROBOT.equals("足球_进攻机器人")) {
installWorld.setChildVRML(0, flag);
installWorld.setChildVRML(1, flag);
installWorld.setChildVRML(ModelConstant.JINGONG_HM.get("body"),flag);
JOptionPane.showMessageDialog(modelSelectPanel, "操作成功,请继续选择或点击下一页!");
} else {
showDialog(flag);
}
} else if (ModeSelectPanel.jRadioText.equals("车体3")) {
if (ModelConstant.ROBOT.equals("足球_防守机器人")) {
installWorld.setChildVRML(ModelConstant.FANGSHOU_HM.get("body"),flag);
installWorld.setChildVRML(0, flag);
installWorld.setChildVRML(1, flag);
JOptionPane.showMessageDialog(modelSelectPanel, "操作成功,请继续选择或点击下一页!");
} else {
showDialog(flag);
}
}else/* if (ModeSelectPanel.jRadioText.equals("车体4")) {
if (ModelConstant.ROBOT.equals("太阳能机器人")) {
installWorld.setChildVRML(ModelConstant.taiyang_HM.get("body"),flag);
JOptionPane.showMessageDialog(modelSelectPanel, "操作成功,请继续选择或点击下一页!");
} else {
showDialog(flag);
}
} else
if (ModeSelectPanel.jRadioText.equals("车体5")) {
if (ModelConstant.ROBOT.equals("战斗机器人")) {
installWorld.setChildVRML(ModelConstant.zhandou_HM.get("z-body"),flag);
JOptionPane.showMessageDialog(modelSelectPanel, "操作成功,请继续选择或点击下一页!");
} else {
showDialog(flag);
}
} else if (ModeSelectPanel.jRadioText.equals("车体6")) {
if (ModelConstant.ROBOT.equals("太空机器人")) {
installWorld.setChildVRML(ModelConstant.taikong_HM.get("body"),flag);
JOptionPane.showMessageDialog(modelSelectPanel, "操作成功,请继续选择或点击下一页!");
} else {
showDialog(flag);
}
} else */ if (ModeSelectPanel.jRadioText.equals("固定架1")) {
if (ModelConstant.ROBOT.equals("足球_进攻机器人")) {
installWorld.setChildVRML(ModelConstant.JINGONG_HM.get("fixB"),flag);
JOptionPane.showMessageDialog(modelSelectPanel, "操作成功,请继续选择或点击下一页!");
} else {
showDialog(flag);
}
} else if (ModeSelectPanel.jRadioText.equals("固定架2")) {
if (ModelConstant.ROBOT.equals("足球_进攻机器人")) {
评论2