版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业实验五 图形用户界面设计(2)一、实验目的(1) 掌握编写独立运行的窗口界面的方法。(2) 了解 Java Swing 组件的使用方法。(3) 理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。(4) 掌握常用图形用户界面的设计方法。二、实验要求 通过实验理解java的事件处理机制,能够对常见事件AcitonEvent, WindowEvent, KeyEvent, MouseEvent进行处理。三、实验内容(一)建立独立运行的窗口界面并使用匿名类处
2、理事件最常使用的容器是窗口,在Java 中窗口由Frame或JFrame 类生成,编写Demo5_21.java程序文件。程序功能:创建一个具有关闭功能的空白窗口。源代码如下:import java.awt.*;import java.awt.event.*;public class Demo5_21Demo5_21()Frame f=new Frame(初始窗口);f.setSize(350,200);f.setVisible(true); /为窗口添加窗口事件适配器f.addWindowListener(new WindowAdapter() /内部匿名类关闭窗口,实现方法windowCl
3、osingpublic void windowClosing(WindowEvent e)System.exit(0););public static void main(String args) new Demo5_21();编译并运行程序思考 导入包时,可否将import java.awt.event.*;省去不写。为什么?(二)使用 Swing 组件、了解事件处理机制在Java 中,能够实现图形用户界面的类库有两个:java.awt 和javax.swing。前者称为抽象窗口工具库AWT(Abstract Windows Toolkit),后者是Java 基础类库JFC(Java Fou
4、ndation Classes)的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面组件。Swing 组件名称和AWT 组件名称基本相同,但以J 开头,例如AWT 按钮类的名称是Button,在Swing 中的名称则是JButton。先运行程序下面程序Demo5_22.java,然后按【思考问题】提示来分析、修改并体验程序。import java.awt.*;import java.awt.event.*;import javax.swing.*;class Demo5_22 extends JFrame implements ActionListener JTextField
5、 TOprand1; JTextField TOprand2; JTextField Result; JLabel LAdd,LSum; JButton BAdd,BClear; Container c=null; /构造方法,形成用户界面 public Demo5_22 () TOprand1=new JTextField(0.0000); TOprand2=new JTextField(0.0000); Result=new JTextField(0.0000); LAdd=new JLabel(+); LSum=new JLabel(=); BAdd=new JButton(加法); B
6、Clear=new JButton(清除); c=this.getContentPane(); c.setLayout(new FlowLayout(); c.add(TOprand1); c.add(LAdd);c.add(TOprand2); c.add(LSum); c.add(Result); c.add(BAdd); c.add(BClear); this.pack(); this.setVisible(true); BAdd.addActionListener(this); BClear.addActionListener(this); /匿名内部类实现事件处理 this.addW
7、indowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) double a,b,sum; if(e.getSource()=BAdd) a=Double.valueOf(TOprand1.getText().doubleValue(); b=Double.valueOf(TOprand2.getText().doubleValue(); sum=a+b; Result.setTex
8、t(String.valueOf(sum); if(e.getSource()=BClear) TOprand1.setText(0.0000); TOprand2.setText(0.0000); Result.setText(String.valueOf(0.0000); public static void main(String args) Demo5_22 mainFrame = new Demo5_22(); mainFrame.setSize(350, 200); mainFrame.setTitle(GUI实验一); 【思考】基本容器JFrame比起Frame有何特点?为什么这
9、里定义了一个c=this.getContentPane();采用了什么布局管理器,各组件按什么次序加入组件的?很多地方用到this,这个this指什么?分析事件执行方法 actionPerformed里面的下面三条语句起何作用?a=Double.valueOf(TOprand1.getText().doubleValue(); b=Double.valueOf(TOprand2.getText().doubleValue(); Result.setText(String.valueOf(sum); 程序中对按钮事件的监听采用了什么方法? (三)ItemEvent事件,进一步理解事件处理机制1
10、选择复选框和单选框按钮的事件处理程序程序功能:在Applte 上创建复选框、单选框、文本区域、单行文本框等组件,并实现根据用户输入的10 进制数,选择不同选项可转换为2、8、16 进制数。编写Demo6_4.java 程序文件,源代码如下:import java.applet.Applet;import java.awt.*;import java.awt.event.*;public class Demo5_23 extends Applet implements ItemListener TextArea area=new TextArea(6,30);/创建文本区String Item=
11、2 进制,8 进制,16 进制,10 进制;Checkbox cb=new Checkbox5;Checkbox radio=new Checkbox5;Label l=new Label(输入10 进制数);TextField TF=new TextField(6);/创建单行文本框public void init() add(l);add(TF);add(area);add(new Label( 请选择进制:);for(int i=0; i4; i+) cbi=new Checkbox(Itemi);add(cbi);cbi.addItemListener(this);CheckboxGr
12、oup cbGroup=new CheckboxGroup();/创建单选框add(new Label(请选择进制:);for(int i=0; i4; i+) radioi=new Checkbox(Itemi,cbGroup,false);add(radioi);radioi.addItemListener(this);public void itemStateChanged(ItemEvent e) int x=Integer.parseInt(TF.getText();if (e.getItem ()=2 进制)area.append (你选择的是+e.getItem ()+ Inte
13、ger.toBinaryString(x)+n);if (e.getItem ()=8 进制)area.append (你选择的是+e.getItem ()+ Integer.toOctalString(x)+n);if (e.getItem ()=16 进制)area.append (你选择的是+e.getItem ()+Integer.toHexString(x)+n);if (e.getItem ()=10 进制)area.append (你选择的是+e.getItem ()+x+n);编译程序Demo5_23.java。编写显示Applet 的页面文件Demo5_23.html(四)菜
14、单的响应事件import java.awt.*;import java.awt.event.*;public class Demo5_24 extends Frame implements ActionListener Panel p=new Panel();Button b=new Button(退出);MenuBar mb=new MenuBar(); / 以下生成菜单组件对象Menu m1=new Menu(文件);MenuItem open=new MenuItem(打开);MenuItem close=new MenuItem(关闭);MenuItem exit=new MenuIt
15、em(退出);Menu m12=new Menu(编辑);MenuItem copy=new MenuItem(复制);MenuItem cut=new MenuItem(剪切);MenuItem paste=new MenuItem(粘贴);Menu m2=new Menu(帮助);MenuItem content=new MenuItem(目录);MenuItem index=new MenuItem(索引);MenuItem about=new MenuItem(关于);Demo5_24 () super(添加菜单的窗口);setSize(350,200);add(South,p);p.
16、add(b);b.addActionListener(this);m1.add(open); / 将菜单项加入到菜单m1 中m1.add(close);m1.addSeparator(); /在菜单中添加分隔条m1.add(exit);open.addActionListener(this); /给菜单项open 注册事件监听器exit.addActionListener(this);mb.add(m1); / 将菜单m1 加入到菜单栏mb 中m12.add(copy); m12.add(cut); m12.add(paste);m1.add(m12);/将m12 作为2 级菜单添加到m1 菜单项中m2.add(content); m2.add(index); m2.addSeparator(); m2.add(about);mb.add(m2);setMenuBar(mb); / 设置菜单栏为mbshow();/ 显示组件public static void main(String args) new Demo5_24();publ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋认购委托协议书
- 房屋过户申请协议书
- 房屋院子托管协议书
- 房款协议书范本模板
- 房租延期谈合同协议
- 房租赠与车位协议书
- 房车客车转让协议书
- 手工艺项目合同范本
- 手机壳购销合同范本
- 手续项目咨询协议书
- 天津师范大学《土木工程施工组织设计》2023-2024学年第二学期期末试卷
- 电能质量技术监督培训课件
- (2025)事业单位考试(面试)试题与答案
- T/CNCIA 02005-2020室外用仿石涂料涂装施工及验收规范
- 智慧农业智能大棚系统设计
- 《临床医师技能培训》课件
- 股份分配协议书范本
- 数独基础课程讲座
- 2025年中考语文常考作文押题《10个主题+15篇范文》
- 智能机器人创客基本训练知到课后答案智慧树章节测试答案2025年春仲恺农业工程学院
- 中国典籍外译知到课后答案智慧树章节测试答案2025年春山东建筑大学
评论
0/150
提交评论