java试验报告3.docx
《java试验报告3.docx》由会员分享,可在线阅读,更多相关《java试验报告3.docx(32页珍藏版)》请在冰豆网上搜索。
java试验报告3
政法学院
本科学生实验报告
(三)
姓名学院计算机科学学院
专业计算机科学与技术班级
实验课程名称JAVA使用教程
试验时间年月日
指导教师及职称
实验成绩
开课时间学年1学期
政法学院实验管理中心印制
实验题目
组建和事件
小组合作
否○
姓名
班级
学号
一、实验目的:
1、掌握java图形用户界面设计常用类及其各自重要方法的应用。
2、掌握java事件处理模式并熟练掌握文本框上事件处理的方法。
4、进一步掌握javaAWT组件、Swing组件及事件编程的各种方法。
5、掌握对话框的编制和事件处理方法。
6、掌握鼠标焦点事件、鼠标事件及键盘事件的处理方法。
二、实验环境:
装有jdk1.6及Eclipse3.4.1的计算机一台
三、实验内容与步骤:
1、算术测试:
请读懂下面模板程序,将其补充完整并调试运行。
1、启动Eclipse3.4.1→新建javaproject→name:
myproject_01→javapackage→name:
zujian→javaclass→name:
MainClass
程序如下:
packagezujian;
importjava.awt.*;
importjava.awt.event.*;
classTeacher
{intnumberOne,numberTwo;
Stringoperator="";
booleanright;
publicintgiveNumberOne(intn)
{numberOne=(int)(Math.random()*n)+1;
returnnumberOne;
}
publicintgiveNumberTwo(intn)
{numberTwo=(int)(Math.random()*n)+1;
returnnumberTwo;
}
publicStringgiveOperator()
{doubled=Math.random();
if(d>=0.5)
operator="+";
else
operator="-";
returnoperator;
}
publicbooleangetRight(intanswer)
{if(operator.equals("+"))
{if(answer==numberOne+numberTwo)
right=true;
else
right=false;
}
elseif(operator.equals("-"))
{if(answer==numberOne-numberTwo)
right=true;
else
right=false;
}
returnright;
}
}
classComputerFrameextendsFrameimplementsActionListener
{TextFieldtextOne,textTwo,textResult;
ButtongetProblem,giveAnwser;
LabeloperatorLabel,message;
Teacherteacher;
ComputerFrame(Strings)
{super(s);
teacher=newTeacher();
setLayout(newFlowLayout());
textOne=newTextField(10);//创建textOne,其可见字符长是10
textTwo=newTextField(10);//创建textTwo,其可见字符长是10
textResult=newTextField(10);//创建textResult,其可见字符长是10
operatorLabel=newLabel("+");
message=newLabel("你还没有回答呢");
getProblem=newButton("获取题目");
giveAnwser=newButton("确认答案");
add(getProblem);
add(textOne);
add(operatorLabel);
add(textTwo);
add(newLabel("="));
add(textResult);
add(giveAnwser);
add(message);
textResult.requestFocus();
textOne.setEditable(false);
textTwo.setEditable(false);
getProblem.addActionListener(this);//将当前窗口注册为getProblem的ActionEvent事件监视器
giveAnwser.addActionListener(this);//将当前窗口注册为giveAnwser的ActionEvent事件监视器
textResult.addActionListener(this);//将当前窗口注册为textResult的ActionEvent事件监视器
setBounds(100,100,450,100);
setVisible(true);
validate();
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{System.exit(0);
}
}
);
}
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==getProblem)//判断事件源是否是getProblem
{intnumber1=teacher.giveNumberOne(100);
intnumber2=teacher.giveNumberTwo(100);
Stringoperator=teacher.giveOperator();
textOne.setText(""+number1);
textTwo.setText(""+number2);
operatorLabel.setText(operator);
message.setText("请回答");
textResult.setText(null);
}
if(e.getSource()==giveAnwser)//判断事件源是否是giveAnwser
{Stringanswer=textResult.getText();
try{
intresult=Integer.parseInt(answer);
if(teacher.getRight(result)==true)
{message.setText("你回答正确");
}
else
{message.setText("你回答错误");
}
}
catch(NumberFormatExceptionex)
{message.setText("请输入数字字符");
}
}
textResult.requestFocus();
validate();
}
}
publicclassMainClass
{publicstaticvoidmain(Stringargs[])
{ComputerFrameFrame;
Frame=newComputerFrame("算术运算");//创建窗口,其标题为:
算术测试
}
}
调试无误,运行结果如图:
2、信号灯:
请读懂下面模板程序,将其补充完整并调试运行。
1、启动Eclipse3.4.1→新建javaproject→name:
myproject_01→javapackage→name:
zujian→javaclass→name:
SignalMainClass
程序如下:
packagezujian;
publicclassSignalMainClass
{
publicstaticvoidmain(Stringargs[])
{SignalFrameframe;
frame=newSignalFrame();
frame.setTitle("信号灯");
}
}
2、新建javaclass→name:
SignalFrame
程序如下:
packagezujian;
importjava.awt.*;
importjava.applet.*;
importjava.awt.event.*;
classSignalCanvasextendsCanvas
{intred,green,yellow,x,y,r;
SignalCanvas()
{setBackground(Color.white);
}
publicvoidsetRed(intr)
{red=r;
}
publicvoidsetGreen(intg)
{green=g;
}
publicvoidsetYellow(inty)
{yellow=y;
}
publicvoidsetPosition(intx,inty)
{this.x=x;
this.y=y;
}
publicvoidsetRadius(intr)
{this.r=r;
}
publicvoidpaint(Graphicsg)
{if(red==1)
{g.setColor(Color.red);
}
elseif(green==1)
{g.setColor(Color.green);
}
elseif(yellow==1)
{g.setColor(Color.yellow);
}
g.fillOval(x,y,2*r,2*r);
}
}
publicclassSignalFrameextendsFrameimplementsItemListener
{Choicechoice;
SignalCanvassignal=null;
StringitemRed="红灯",itemYellow="黄灯",itemGreen="绿灯";
publicSignalFrame()
{choice=newChoice();//创建choice
choice.add(itemRed);//创建choice添加itemRed
choice.add(itemYellow);//创建choice添加itemYellow
choice.add(itemGreen);//创建choice添加itemGreen
choice.addItemListener(this);//将当前窗口注册为choice的ItemEvent事件监视器
add(choice,BorderLayout.NORTH);