电梯模拟程序Java语言编写.docx
- 文档编号:2123655
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:20
- 大小:17.04KB
电梯模拟程序Java语言编写.docx
《电梯模拟程序Java语言编写.docx》由会员分享,可在线阅读,更多相关《电梯模拟程序Java语言编写.docx(20页珍藏版)》请在冰点文库上搜索。
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
importjava.io.*;
publicclassLiftMainTest
{
publicstaticvoidmain(Stringargs[])
{
newLiftTest("电梯测试");
}
}
//批量数据测试对话框
classDialogextendsJDialogimplementsActionListener
{
intMessage=0;
JPanelDJPanel=newJPanel();
JTextFieldTestField[]=newJTextField[16];
JLabelTestLabel1=newJLabel("时间");
JLabelTestLabel2=newJLabel("人数");
JLabelTestLabel3=newJLabel("起始楼层");
JLabelTestLabel4=newJLabel("目标楼层");
JButtonok=newJButton("确定");
JButtoncancel=newJButton("取消");
Dialog(JFramef,Strings,booleanb)
{
super(f,s,b);
DJPanel.setLayout(newGridLayout(7,3));
for(inti=0;i<=15;i++)
{
TestField[i]=newJTextField(4);
}
DJPanel.add(TestLabel1);
DJPanel.add(TestLabel2);
DJPanel.add(TestLabel3);
DJPanel.add(TestLabel4);
DJPanel.add(TestField[0]);
DJPanel.add(TestField[1]);
DJPanel.add(TestField[2]);
DJPanel.add(TestField[3]);
DJPanel.add(TestField[4]);
DJPanel.add(TestField[5]);
DJPanel.add(TestField[6]);
DJPanel.add(TestField[7]);
DJPanel.add(TestField[8]);
DJPanel.add(TestField[9]);
DJPanel.add(TestField[10]);
DJPanel.add(TestField[11]);
DJPanel.add(TestField[12]);
DJPanel.add(TestField[13]);
DJPanel.add(TestField[14]);
DJPanel.add(TestField[15]);
DJPanel.add(ok);
DJPanel.add(cancel);
add(DJPanel);
ok.addActionListener(this);
cancel.addActionListener(this);
setBounds(450,170,300,300);
}
publicvoidactionPerformed(ActionEvente)//Dialog监听函数
{
if(e.getSource()==ok)
{
Message=1;
setVisible(false);
}
elseif(e.getSource()==cancel)
{
Message=-1;
setVisible(false);
}
else
{
;
}
}
}
//LiftTest类
classLiftTestextendsJFrameimplementsActionListener
{
Dialog mydialog;
JMenuBarmenubar;
JMenumenu,submenu,submenuhelp;
JMenuItemitem1,item2,menuitemhelp;
//变量定义
intx;
inty;
intLIsRun=0;//左电梯是否在运行(0或1)
intRIsRun=0;//右电梯是否在运行(0或1)
intLDirection=0;//左电梯运行方向
intRDirection=0;//右电梯运行方向
intLWantLevel=0;//乘客目的层数
intRWantLevel=0;
intLNowLevel=0;//乘客开始时所在层数
intRNowLevel=0;
intLLiftNowLevel=1;//左电梯目前所在层数
intRLiftNowLevel=1;//右电梯目前所在层数
intWantDirection=0;//乘客目标运行方向
intWaitPeopleNum[]=newint[11];//保留数组(未用)
inta=0;
intb=0;
//线程定义
LIOlio=newLIO();
RIOrio=newRIO();
ThreadLStartThread=newThread(lio);
ThreadRStartThread=newThread(rio);
//上下电梯的按钮定义
JButtonBlue10=newJButton(newImageIcon("10x.gif"));
JButtonBlue9=newJButton(newImageIcon("9x.gif"));
JButtonBlue8=newJButton(newImageIcon("8x.gif"));
JButtonBlue7=newJButton(newImageIcon("7x.gif"));
JButtonBlue6=newJButton(newImageIcon("6x.gif"));
JButtonBlue5=newJButton(newImageIcon("5x.gif"));
JButtonBlue4=newJButton(newImageIcon("4x.gif"));
JButtonBlue3=newJButton(newImageIcon("3x.gif"));
JButtonBlue2=newJButton(newImageIcon("2x.gif"));
JButtonRed9=newJButton(newImageIcon("9s.gif"));
JButtonRed8=newJButton(newImageIcon("8s.gif"));
JButtonRed7=newJButton(newImageIcon("7s.gif"));
JButtonRed6=newJButton(newImageIcon("6s.gif"));
JButtonRed5=newJButton(newImageIcon("5s.gif"));
JButtonRed4=newJButton(newImageIcon("4s.gif"));
JButtonRed3=newJButton(newImageIcon("3s.gif"));
JButtonRed2=newJButton(newImageIcon("2s.gif"));
JButtonRed1=newJButton(newImageIcon("1s.gif"));
//电梯门定义
JButtonLLiftLDoor=newJButton(newImageIcon("LLiftLDoor.gif"));//设置门图标
JButtonLLiftRDoor=newJButton(newImageIcon("LLiftRDoor.gif"));//设置门图标
JButtonRLiftLDoor=newJButton(newImageIcon("RLiftLDoor.gif"));//设置门图标
JButtonRLiftRDoor=newJButton(newImageIcon("RLiftRDoor.gif"));//设置门图标
//电梯内部按钮定义
JButtonLPressButton1=newJButton("1");
JButtonLPressButton2=newJButton("2");
JButtonLPressButton3=newJButton("3");
JButtonLPressButton4=newJButton("4");
JButtonLPressButton5=newJButton("5");
JButtonLPressButton6=newJButton("6");
JButtonLPressButton7=newJButton("7");
JButtonLPressButton8=newJButton("8");
JButtonLPressButton9=newJButton("9");
JButtonLPressButton10=newJButton("10");
JButtonRPressButton1=newJButton("1");
JButtonRPressButton2=newJButton("2");
JButtonRPressButton3=newJButton("3");
JButtonRPressButton4=newJButton("4");
JButtonRPressButton5=newJButton("5");
JButtonRPressButton6=newJButton("6");
JButtonRPressButton7=newJButton("7");
JButtonRPressButton8=newJButton("8");
JButtonRPressButton9=newJButton("9");
JButtonRPressButton10=newJButton("10");量数据测试”按钮的Panel
//组件定义
JLabelLL=newJLabel("当前电梯内部人数:
");
JLabelRL=newJLabel("当前电梯内部人数:
");
JButtonStart=newJButton("开始电梯调度模拟");//开始电梯调度模拟按钮
JButtonTest=newJButton("开始批量数据测试");//开始批量数据测试按钮
JTextAreaLTextArea=newJTextArea(5,5);
JTextAreaRTextArea=newJTextArea(5,5);
//电梯调度函数Cal(LIsRun,LLiftNowLevel,q,LDirection)
intCal(intx,inty,intz,intw)
{
return(x*(y-z)*w);
}
//方法函数
LiftTest(Strings)
{
super(s);
setSize(1000,600);
setLocation(100,50);
//Dialog
mydialog=newDialog(this,"批量数据测试",true);
//菜单项设置
menubar=newJMenuBar();
menu=newJMenu("菜单");
submenu=newJMenu("联系作者");
submenuhelp=newJMenu("帮助");
item1=newJMenuItem("程序简介");
item2=newJMenuItem("源代码");
menu.add(item1);
menu.addSeparator();
menu.add(item2);
menu.addSeparator();
menu.add(submenu);
menu.addSeparator();
menu.add(submenuhelp);
submenu.add(newJMenuItem("作者简介"));
submenuhelp.add(newJMenuItem("使用帮助"));
menubar.add(menu);
setJMenuBar(menubar);
//面板布局管理器设置
WindowsPanel.setLayout(newGridLayout(1,6));
WaitPeopleNumPanel.setLayout(newGridLayout(10,1));
LeftPanel.setLayout(newGridLayout(3,1));
RightPanel.setLayout(newGridLayout(3,1));
LeftLiftPanel.setLayout(null);//左电梯运动轨道Panel布局管理器设为空
RightLiftPanel.setLayout(null);//右电梯运动轨道Panel布局管理器设为空
UpDownButtonPanel.setLayout(newGridLayout(10,2));
LButtonPanel.setLayout(newGridLayout(4,3));
RButtonPanel.setLayout(newGridLayout(4,3));
LeftLiftPanel.setBackground(Color.green);
RightLiftPanel.setBackground(Color.green);
UpDownButtonPanel.setBackground(Color.yellow);
UpMainPanel.setLayout(newGridLayout(1,2));
LBoxPanel.setLayout(null);//左电梯箱Panel布局管理器设为空
RBoxPanel.setLayout(null);//右电梯箱Panel布局管理器设为空
//电梯箱设置
LBoxPanel.setSize(165,51);
RBoxPanel.setSize(165,51);
LBoxPanel.setLocation(0,459);
RBoxPanel.setLocation(0,459);
LeftLiftPanel.add(LBoxPanel);
RightLiftPanel.add(RBoxPanel);
//电梯门设置
LLiftLDoor.setEnabled(false);
LLiftRDoor.setEnabled(false);
RLiftLDoor.setEnabled(false);
RLiftRDoor.setEnabled(false);
LLiftLDoor.setSize(82,51);
LLiftRDoor.setSize(82,51);
RLiftLDoor.setSize(82,51);
RLiftRDoor.setSize(82,51);
LLiftLDoor.setLocation(0,0);
LLiftRDoor.setLocation(82,0);
RLiftLDoor.setLocation(0,0);
RLiftRDoor.setLocation(82,0);
LBoxPanel.add(LLiftLDoor);
LBoxPanel.add(LLiftRDoor);
RBoxPanel.add(RLiftLDoor);
RBoxPanel.add(RLiftRDoor);
//分别添加两个电梯的10个按钮
LButtonPanel.add(LPressButton1);//左电梯
LButtonPanel.add(LPressButton2);
LButtonPanel.add(LPressButton3);
LButtonPanel.add(LPressButton4);
LButtonPanel.add(LPressButton5);
LButtonPanel.add(LPressButton6);
LButtonPanel.add(LPressButton7);
LButtonPanel.add(LPressButton8);
LButtonPanel.add(LPressButton9);
LButtonPanel.add(LPressButton10);
RButtonPanel.add(RPressButton1);//右电梯
RButtonPanel.add(RPressButton2);
RButtonPanel.add(RPressButton3);
RButtonPanel.add(RPressButton4);
RButtonPanel.add(RPressButton5);
RButtonPanel.add(RPressButton6);
RButtonPanel.add(RPressButton7);
RButtonPanel.add(RPressButton8);
RButtonPanel.add(RPressButton9);
RButtonPanel.add(RPressButton10);
//添加上下电梯按钮至UpDownButtonPanel面板
JButtonUnabled1=newJButton();
Unabled1.setEnabled(false);
JButtonUnabled2=newJButton();
Unabled2.setEnabled(false);
UpDownButtonPanel.add(Unabled1);//开始第一个空着
UpDownButtonPanel.add(Blue10);
UpDownButtonPanel.add(Red9);
UpDownButtonPanel.add(Blue9);
UpDownButtonPanel.add(Red8);
UpDownButtonPanel.add(Blue8);
UpDownButtonPanel.add(Red7);
UpDownButtonPanel.add(Blue7);
UpDownButtonPanel.add(Red6);
UpDownButtonPanel.add(Blue6);
UpDownButtonPanel.add(Red5);
UpDownButtonPanel.add(Blue5);
UpDownButtonPanel.add(Red4);
UpDownButtonPanel.add(Blue4);
UpDownButtonPanel.add(Red3);
UpDownButtonPanel.add(Blue3);
UpDownButtonPanel.add(Red2);
UpDownButtonPanel.add(Blue2);
UpDownButtonPanel.add(Red1);
UpDownButtonPanel.add(Unabled2);//最后一个空着
//等待人数文本框定义
JTextFieldText10=newJTextField("10楼等待人数:
",8);
Text10.setEditable(false);
JTextFieldText9=newJTextField("9楼等待人数:
",8);
Text9.setEditable(false);
JTextFieldText8=newJTextField("8楼等待人数:
",8);
Text8.setEditable(false);
JTextFieldText7=newJTextField("7楼等待人数:
",8);
Text7.setEditable(false);
JTextFieldText6=newJTextField("6楼等待人数:
",8);
Text6.setEditable(false);
JTextFieldText5=newJTextField("5楼等待人数:
",8);
Text5.setEditable(false);
JTextFieldText4=newJTextField("4楼等待人数:
",8);
Text4.setEditable(false);
JTextFieldText3=newJTextField("3楼等待人数:
",8);
Text3.setEditable(false);
JTextFieldText2=newJTextField("2楼等待人数:
",8);
Text2.setEditable(false);
JTextFieldText1=newJTextField("1楼等待人数:
",8);
Text1.setEditable(false);
//向UpMainPanel中添加组件
UpMainPanel.add(Start);
UpMainPanel.add(Test);
//添加等待人数文本框至WaitPeopleNumPanel面板
WaitPeopleNumPanel.add(Text10);
WaitPeopleNumPanel.add(Text9);
WaitPeopleNumPanel.add(Text8);
WaitPeopleNumPanel.add(Text7);
WaitPeopleNumPanel.add(Text6);
WaitPeopleNumPanel.add(Text5);
WaitPeopleNumPanel.add(Text4);
WaitPeopleNumPanel.add(Text3);
WaitPeopleNumPanel.add(Text2);
WaitPeopleNumPanel.add(Text1);
//分别向LeftPanel(左电梯提示器),RightPanel(右电梯提示器)添加相应组件
LeftPanel.add(LButtonPanel);
LeftPanel.add(LL);
LeftPanel.add(LTextArea);
RightPanel.add(RButtonPanel);
RightPanel.add(RL);
RightPanel.add(RTextArea);
//添加至总面板
WindowsPanel.add(WaitPeopleNumPanel);
WindowsPanel.add(LeftPanel);
WindowsPanel.add(LeftLiftPanel);
WindowsPanel.add(UpDownButtonPanel);
WindowsPanel.add(RightLiftPanel);
WindowsPanel.add(RightPanel);
//添加监听器
Start.addActionListener(this);
Test.addActionListener(this);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电梯 模拟 程序 Java 语言 编写