实验五---图形用户界面设计(共6页).doc

上传人:飞****2 文档编号:13892456 上传时间:2022-05-01 格式:DOC 页数:6 大小:118.50KB
返回 下载 相关 举报
实验五---图形用户界面设计(共6页).doc_第1页
第1页 / 共6页
实验五---图形用户界面设计(共6页).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《实验五---图形用户界面设计(共6页).doc》由会员分享,可在线阅读,更多相关《实验五---图形用户界面设计(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上实验五 图形用户界面设计(2)一、实验目的(1) 掌握编写独立运行的窗口界面的方法。(2) 了解 Java Swing 组件的使用方法。(3) 理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。(4) 掌握常用图形用户界面的设计方法。二、实验要求 通过实验理解java的事件处理机制,能够对常见事件AcitonEvent, WindowEvent, KeyEvent, MouseEvent进行处理。三、实验内容(一)建立独立运行的窗口界面并使用匿名类处理事件最常使用的容器是窗口,在Java 中窗口由Frame或JFrame 类生成,编写Demo5_2

2、1.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() /内部匿名类关闭窗口,实现方法windowClosingpublic void windowClosing(WindowEvent e)Syste

3、m.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 Foundation Classes)的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面

4、组件。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 TOprand1; JTextField TOprand2; JTextField Result;

5、 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(加法); BClear=new JButton(清除); c=this.getContentPane(); c.

6、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.addWindowListener(new WindowAdapter() public void wind

7、owClosing(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.setText(String.valueOf(sum); if(e.getSource()=BClear) TO

8、prand1.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有何特点?为什么这里定义了一个c=this.getContentPane(); 采用了什么布局管理器,各组件按什么次

9、序加入组件的? 很多地方用到this,这个this指什么? 分析事件执行方法 actionPerformed里面的下面三条语句起何作用?a=Double.valueOf(TOprand1.getText().doubleValue(); b=Double.valueOf(TOprand2.getText().doubleValue(); Result.setText(String.valueOf(sum); 程序中对按钮事件的监听采用了什么方法? (三)ItemEvent事件,进一步理解事件处理机制1 选择复选框和单选框按钮的事件处理程序程序功能:在Applte 上创建复选框、单选框、文本区域

10、、单行文本框等组件,并实现根据用户输入的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=2 进制,8 进制,16 进制,10 进制;Checkbox cb=new Checkbox

11、5;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);CheckboxGroup cbGroup=new CheckboxGroup();/创建单选框add(new

12、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 ()+ Integer.toBinaryString(x)+n);if (e.getItem ()=8 进制

13、)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(四)菜单的响应事件import java.awt.*;import java.awt.event.

14、*;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 MenuItem(退出);Menu m12=new Menu(编辑);MenuItem copy=new

15、 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.add(b);b.addActionListener(this);m1.add(open);

16、 / 将菜单项加入到菜单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.addSepar

17、ator(); m2.add(about);mb.add(m2);setMenuBar(mb); / 设置菜单栏为mbshow();/ 显示组件public static void main(String args) new Demo5_24();public void actionPerformed(ActionEvent e) if (e.getActionCommand()=退出)System.exit(0);if (e.getActionCommand()=打开)new Demo5_3();四、实验练习题1.在上周实验的基础上,添加事件响应,运行结果如图示界面。用户名和密码正确,显示如左图,否则显示如图。2.在上周程序基础上完成猜数字游戏。3.完成下面“个人信息调查”用户界面的设计,当选择相应选项时,单击“提交”,在文本框中显示提示信息,单击“清空”,内容清空专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁