java实验报告 2.docx
《java实验报告 2.docx》由会员分享,可在线阅读,更多相关《java实验报告 2.docx(18页珍藏版)》请在冰豆网上搜索。
java实验报告2
甘肃政法学院
本科生实验报告
(三)
姓名:
俞晓
学院:
信息工程学院
专业:
信息管理与信息系统
班级:
2013级信管班
实验课程名称:
JavaSE程序设计
实验日期:
2015年5月5日
指导教师及职称:
李瑞生
实验成绩:
开课时间:
2104-2015学年第二学期
甘肃政法学院实验管理中心印制
实验题目
组件与事件
小组合作
否
姓名
俞晓
班级
2013级信管班
学号
201381020120
一、实验目的
1、掌握javaAWT图形用户界面设计常用类及其各自重要方法的应用。
2、掌握java事件处理模式并熟练掌握文本框上事件处理的方法。
3、进一步掌握java组件及事件编程的各种方法。
4、掌握对话框的编制和事件处理方法。
5、掌握鼠标焦点事件、鼠标事件及键盘事件的处理方法。
6、掌握Swing组件及事件编程方法。
二.实验环境
Windows7
Eclipse
三、实验内容与步骤
1、算数测试
【代码1】//创建textOne,其可见字符长是10:
textOne=newTextField(10);
【代码2】//创建textTwo,其可见字符长是10:
textTwo=newTextField(10);
【代码3】//创建textResult,其可见字符长是10:
textResult=newTextField(10);
【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器:
getProblem.addActionListener(this);
【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器:
giveAnwser.addActionListener(this);
【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器:
textResult.addActionListener(this);
【代码7】//判断事件源是否是getProblem:
if(e.getSource()==getProblem)
【代码8】//判断事件源是否是giveAnwser:
e.getSource()==giveAnwser)
【代码9】//创建窗口,其标题为:
算术测试:
frame=newComputerFrame("算数测试");
运行结果如图所示:
2、信号灯
【代码1】//创建choice:
choice=newChoice();
【代码2】//创建choice添加itemRed:
choice.addItem(itemRed);
【代码3】//创建choice添加itemYellow:
choice.addItem(itemYellow);
【代码4】//创建choice添加itemGreen:
choice.addItem(itemGreen);
【代码5】//将当前窗口注册为choice的ItemEvent事件监视器:
choice.addItemListener(this);
【代码6】//choice返回被选中的条目:
Stringitem=choice.getSelectedItem();
运行结果如图所示:
3、布局与日历
【代码1】//将pCenter的布局设置为7行7列的GridLayout布局:
pCenter.setLayout(newGridLayout(7,7));
【代码2】//pCenter添加组件titleName[i]:
pCenter.add(titleName[i]);
【代码3】//pCenter添加组件labelDay[i]:
pCenter.add(labelDay[i]);
【代码4】//窗口添加scrollPane在中心区域:
add(pCenter,BorderLayout.CENTER);
【代码5】//窗口添加pNorth在北面区域:
add(pNorth,BorderLayout.NORTH);
【代码6】//窗口添加pSouth在南区域:
add(pSouth,BorderLayout.SOUTH);
运行结果如图所示:
4、方程求根
【代码1】//当前窗口作为controlButton的ActionEvent事件的监视器:
controlButton.addActionListener(this);
【代码2】//textA调用方法获取其中的文本:
doublea=Double.parseDouble(textA.getText());
【代码3】//textB调用方法获取其中的文本:
doubleb=Double.parseDouble(textB.getText());
【代码4】//textC调用方法获取其中的文本:
运行结果如图所示:
5、实体对话框
【代码1】//对话框设置为有模式:
this.setModal(true);
【代码2】//对话框设置为可见:
this.setVisible(true);
【代码3】//对话框设置为不可见:
this.setVisible(false);
【代码4】//创建对话框:
FontDialogdialog=newFontDialog(this);
【代码5】//对话框设置为可见:
dialog.setVisible(true);
【代码6】//对话框设置设置标题为“字体对话框”:
dialog.setTitle("字体对话框");
运行结果如图所示:
6、英语单词拼写练习
【代码1】//将当前对象注册为自身的焦点视器:
this.addFocusListener(this);
【代码2】//将当前对象注册为自身的标监视器:
this.addMouseListener(this);
【代码3】//将当前窗口注册为label[k]的键盘监视器:
label[k].addKeyListener(this);
【代码4】//判断按下的是否是←键):
if(e.getKeyChar()==KeyEvent.VK_LEFT);
【代码5】//判断按下的是否是→键:
if(e.getKeyChar()==KeyEvent.VK_RIGHT);
运行结果如图所示:
7、JLayeredPane分层窗格
【代码1】//pane将组件b5放置在DRAG_LAYER层:
pane.add(b5,pane.DRAG_LAYER);
【代码2】//pane将组件b4放置在POPUP_LAYER层:
pane.add(b4,pane.POPUP_LAYER);
【代码3】//pane将组件b3放置在MODAL_LAYER层:
pane.add(b3,pane.MODAL_LAYER);
【代码4】//pane将组件b2放置在PALETTE_LAYER层:
pane.add(b2,pane.PALETTE_LAYER);
【代码5】//pane将组件b3放置在DEFAULT_LAYER层:
pane.add(b1,pane.DEFAULT_LAYER);
运行结果如图所示:
8、使用表格显示日历
【代码1】//使用数组rili和name创建table:
table=newJTable(rili,name);
【代码2】//使用数组rili和name创建table:
table=newJTable(rili,name);
【代码3】//使用数组rili和name创建table:
table=newJTable(rili,name);
运行结果如图所示:
9、多文档界面(MDI)
【代码1】//创建JdesktopPane对象:
desk=newJDesktopPane();
【代码2】//desk返回其中的全部内部窗体:
JInternalFramea[]=desk.getAllFrames();
【代码3】//desk将a[i]放置在DEFAULT_LAYER层:
desk.setLayer(a[i],JDesktopPane.DEFAULT_LAYER);
【代码4】//desk将newInternalFrame放置在DRAG_LAYER层:
desk.add(newInternalFrame,JDesktopPane.DRAG_LAYER);
运行结果如图所示:
四、实验过程与分析
在实验过程中,遇到了如下一些问题,最后在和同学相互交流以及上网查资料后,这些问题都得到了解决。
1、在做第一个实验时,对于giveAnwser.addActionListener(this)中的(this)不是很理解,经过请教同学,我知道了此处的this代表当前类的对象,通过它,不需要new一个实例就可以用this调用它的方法和属性。
2、在做第二个实验“信号灯”时,第一次运行出现了错误,运行结果如下
之后在经过多次调试,程序运行正常,运行结果如图:
3、在做第六个实验“拼写单词”时,在用键盘左右移动字母时,出现了“NULL”值。
但是在重新调试代码后,运行结果正常。
4、向java中添加awt组件时,我们多数用到的是add()函数,要实现相应的事件时,我们必须还要添加各自所相应的ActionListener(事件监听器)。
五、实验总结
通过本次实验,我了解了java中AWT组件和Swing组件的图形用户界面设计常用类及其各自重要方法的应用,还掌握了怎么来添加AWT组件和Swing组件,以及怎么实现其相应的功能,最后也熟悉了java中AWT组件和Swing组件的使用方法和思想以及文本框上事件处理的方法。
这次实验过后,对java组件及事件编程的各种方法,还有对话框的编制和事件处理方法都熟悉了不少。
除此之外,还了解了鼠标焦点事件、鼠标事件及键盘事件的处理方法和几种布局的方法,以及Swing组件及事件编程方法。
为以后进行窗口和桌面编程积累了不少经验,比如说期末的课程设计,但是因为这方面的东西知识点比较碎,而且刚开始掌握的还不是很透彻,很容易忘记,所以在课后应该多加练习。