事件java程序设计实用教程习题答案

java实用教程  时间:2021-02-13  阅读:()

《Java程序设计精典教程》习题答案

编著胡伏湘雷军环

清华大学出版社

第5章习题解答

一、简答题

1什么是AWTAWT的基本思想是什么

答AWT抽象窗口工具包是一组应用程序接口API其中包括各种Java程序员用来创建图形用户界面GUI的类这些类分别对应着J av a图形用户界面的构成成份组件和容器。组件通常为图形用户界面中的可见部分例如按钮butt o n和标签(label)等。容器是图形用户界面中容纳其他组件的部分一个容器中可以容纳一个或多个组件甚至还可以容纳其他的容器。

AWT的基本思想是将图形用户界面GUI看作一系列嵌套的构件最外层是窗口这样的容器容器内又可以包含其他的组件和容器。这样由表及里所有的构件构成了一个嵌套的树一个构件在这棵树中的位置决定了它显示在屏幕上的位置以及事件的传递途径。

2容器主要有哪些作用 Java中有哪些常见的容器。它们之间有什么异同

答容器组件的主要作用是包容其他组件或容器并按一定的方式组织排列它们 同一个容器的所有构件通常总是同时被显示和同时被隐藏的。

Java中常见的容器有Frame 框架、 Panel 面板和Applet

框架Frame是一个带有边框的独立的窗口可以移动、放大、缩小、关闭。 是独立于Applet和浏览器的一个窗口是Application程序最外层的容器。面板是包含在窗口中的一个不带边框的区域。不是一个单独的窗口它只是包含在窗口中的一个区域是可以将许多组件组合起来的一种容器必须将面板添加到窗体中才能正常显示出来。Applet也是无边框的容器是App let程序最外层的容器。

3布局管理器的作用是什么 Java提供了哪几种布局管理器

答布局管理器用来控制组件在容器中的摆放位置。

Java提供了5种布局管理器它们是顺序布局管理器FlowLayout、边界布局管理器BorderLayout、 网格布局管理器GridLayout、卡片布局管理器

CardLayout、 网格包布局管理器GridBagLayout

4设计和实现图形用户界面的主要工作有哪些

答设计和实现图形用户界面的工作主要有两个一是创建组成界面的各种容器和组件指定它们的属性和位置关系根据具体需要排列它们从而构成完整的图形用户界面的物理外观二是定义图形用户界面的事件和各界面元素对不同事件

的响应从而实现图形用户与用户的交互功能。

5简述事件对象、事件源、监听者的概念

答这三个概念的基本念义如下

事件对象通常当用户在用户接口上进行某种操作时如按下键盘上某个键或移动鼠标均会引发一个事件。事件对象是用来描述所发生事件相关信息的对象对应用户操作的不同种类有不同类型的事件类对象与之对应。

事件源是指一个事件的产生者。例如 当在一个按纽(Button)上单击鼠标时就会产生一个ActionEv ent的事件对象事件源就是该按纽。通过ActionEvent对象的有关方法可以获得该事件的有关信息

事件监听器用来调用事件处理方法的对象。

6 JDK1.1的事件处理机制是什么其原理是什么

答 JDK1.1的事件处理机制采用委托事件模型来处理事件。委托事件模型的原理如下

 确定事件源。图形界面的每个可能产生事件的组件称为事件源不同事件源上发生的事件的种类不同。

 注册事件源。如果希望事件源上发生的事件被程序处理就要把事件源注册给能够处理该事件源上那种类型的事件监听者。监听者是属于一个类的实例这个类实现了一个特殊的接口名为“监听者接口”。

 委托处理事件。当事件源上发生监听者可以处理的事件时事件源把这个事件作为实际参数传递给监听者中负责处理这类事件的方法该方法根据事件对象中封装的信息来确定如何响应这个事件。

二、编程题

1 编写代码创建标题为“基本GUI”编程的窗口。

参考代码如下import java.awt.*;class NewFrame extends Frame {public static void main(String args[]) {

NewFrame mainFrame=new NewFrame();mainFrame.s etTitle("基本GUI编程");mainFrame.setSize(200,200);mainFrame.s etVis ib le(true);

}

}

2编写代码创建标题为“使用面板的基本GUI编程”的面板。

参考代码如下import java.awt.*;class NewPanel extends Panel {

public static void main(String args[]) {

NewPanel np=new NewPanel();

Frame f=new Frame("使用面板的基本GUI编程!");f.a d d(np);f.setSize(300,200);f.s etVis ib le(true);

}

}

3创建一个窗口包括一个标签、一个文本框和一个按钮 当用户单击按钮时程序把文本框中的内容复制到标签中。请使用两种以上的布局管理器布局窗口的组件。

参考代码如下import java.awt.*;import java.awt.event.*;public class CopyText extends Frame implements ActionListener{

Panel p;

Label l;

TextField t;

Button b;public CopyText(){p=new Panel();l=new Label(" ");l.s etBac kground(Color.BLUE);t=new TextField(20);b=new Button("复制文本");p.add(t);p.add(l);add("Center",p);add("S outh",b);b.addAc tionLis tener(this); //给按钮注册活动事件监听器s etVis ib le(true);this.s etT itle("文本复制示例");setSize(400,200);pack();

}public void actionPerformed(ActionEvent e){if(e.getSourc e()==b)

{l.s etText(t.getText());

}

}public static void main(String args[]){

CopyText ct=new CopyText();

}

}

4编写一个程序创建一个AWT面板该面板包含标有三个不同颜色名称的三个按钮单击每个按钮时应使窗口的背景色显示为相应的颜色。import java.awt.*;import java.awt.event.*;clas s ChangeBgCo lor extends Frame implements ActionListener{

Panel p;

Button btn 1,btn2,btn3;

ChangeBgCo lor(){p=new Panel();btn 1=new Button("红色");btn2=new Button("蓝色");btn3=new Button("黄色");this.add(p);p.add(btn 1);p.add(btn2);p.add(btn3);btn 1.addAc tionL is tener(this);btn2.addAc tionL is tener(this);btn3.addAc tionL is tener(this);

}public static void main(String args[]) {

ChangeBgColor mainFrame=new ChangeBgColor();mainFrame.setTitle("基本GUI编程");mainFrame.setSize(200,200);mainFrame.s etVis ib le(true);

}public void actionPerformed(ActionEvent e){if(e.getS ourc e()==btn 1) {p.s etBac kground(Color.red);

}

els e if(e.getSourc e()==btn2){p.s etBac kground(Color.blue);

}els ep.s etBackground(Color.yellow);

}

}

第6章习题解答

一、简答题

1说明文本框和标签之间的区别

答文本框定义了一个单行条形文本区可以输出任何基于文本的信息也可以接受用户的输入并有事件响应。标签可以显示一行静态的文本它只起信息说明作用不接受用户的输入无事件响应。

2试列举Java中常用的基本控制组件。如果有二到三种取值可能采用哪种组件合适如果取值的可能大于5种采用哪种组件合适

答基本控制组件是图形用户界面的最小单位之一它里面不再包含其他成分。基本控制组件的作用是完成与用户的一次交互。 目前常用的基本控制组件有

标签Labe l、文本编辑区TextF ie ld、 Text Area、按钮Button、复选框

Checkbox、单选按钮CheckboxGroup、 Checkbox、下拉列表List或Choic e。

如果这两到三种取值是互斥的话采用单选按钮表示比较合适否则采用复选按钮表示如果5种以上的取值只能多选一的话采用Choic e下拉列表否则采用Lis t下拉列表。

3什么是选择事件可能产生选择事件的GUI组件有哪些

答选择事件是当选择项的选中状态发生变化时所引起的事件。

可能产生选择事件的GUI组件有下拉列表类Choic e、列表类L is t复选按钮类Chec kBox、检测盒菜单项Chec kboxMenuItem

4设计一个菜单的步骤是什么

答设计菜单的步骤是

 用Menu Bar构造函数构造菜单栏对象。

 用M e nu构造函数构造菜单对象。

 用MenuItem构造函数构造菜单项对象。

 用Menu类的add方法将菜单项加入菜单中。

 用Menu Bar类的add方法将菜单加菜单栏中。

 用Frame类的s etMenuBar方法将菜单栏加入窗口中。

5有模式的对话框最突出的特点是什么如果一个对话框的目的在于警告或

提醒用户例如删除数据库记录的确认这个对话框应该是有模式的还是无模式的

答有模式对话框是指打开后必须作出响应的对话框。如果一个对话框的目的在于警告或提醒用户应该为有模式的对话框。

6 Sw ing组件与AWT组件的区别是什么

答AWT组件是JDK1.0和1.1平台用于开发GUI的工具尽管J ava2平台仍然支持AWT组件但是使用Sw ing组件来开发GUI已经成为一种发展趋势。

为了标识Swing组件 Swing组件的在其名称前冠以J字母例如在AWT中的Button类在Sw ing中为JButton。另外 AWT存在于java.awt包中 Sw ing组件存在于javax.swing包中。

Swing组件与AWT组件的最大不同是 Swing组件完全由Java语言实现功能更强大而AWT而不是。

Sw ing组件还提供了AWT组件无法实现的功能

 Swing按钮类和标签类除了显示文本标题还可以显示图形标题

 Swing容器可以加边框

 Sw ing组件可以自动适应操作系统的外观而AWT组件总是保持相

同的外观

 Swing组件可以设计成圆形而不一定是矩形

 通过Swing组件的方法改变其外观和形为

 不能在Swing的顶层容器如JApplet、 JFrame直接加入组件而

要先获得容器再在容器中加入组件。

二、编程题

1 如图6-17所示。标签1的字号比文本框的字号大当单击按钮时若输入文框中的数正确则标签2文本显示正确否则显示不正确。

参考代码如下import java.awt.*;import java.awt.event.*;public class program1 extends Frame implements ActionListener{

Label lb1=new Label("6+9=");

Label lb2=new Label(" ");

TextField tf=new TextField(3);

Button bt=new Button("O K");public program1(){lb 1.s etFont(new Font("Arial",Font.PLAIN,24));s etLayout(new FlowLayout());add(lb 1);add(tf);add(lb2);add(bt);bt.addAc tionL is tener(this);setSize(150,200);s etVis ib le(true);

}public void actionPerformed(ActionEvent e){if(e.getS ourc e()==bt)

{

String str=tf.getText();if(s tr.e qu als("15"))lb2.s etText("正确");els elb2.s etText("不正确");

}

}public static void main(String args[]){new program1();

}

}

本程序的运行结果如图6-18、 6-19所示。

图6-18 图6-19

2编写代码创建一个JFrame窗口为其构建两个单选按钮程序运行的初始界面如图6-20所示。当用户单击“禁用”按钮时显示图6-21所示的界面单击“启用”按钮时显示图6-22所示的界面。

图6-20 图6-21

参考代码如下import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.lang.String;public clas s MyRadiobuttons extends JFrame implements ActionListener{

JRadio Button rad 1,rad2;

ButtonGroup rbgrp=new ButtonGroup();public MyRadiobuttons(){s etTitle("单选按钮");

JPanel cpane=(JPanel)getContentPane();c pane.s etLayout(new GridLayout());rad 1=new JRadio Button("启用");

rad 1.addAc tionL is tener(this);rad1.setSelected(true);rad 1.s etEnabled(fals e);rad2=new JRadio Button("禁用");rad2.addAc tionL is tener(this);rad2.s etSelected(fals e);cpane.add(rad 1);c pane.add(rad2);rbgrp.add(rad 1);rbgrp.add(rad2);radadapter radapp=new radadapter();addWindow Lis tener(radapp);

}c las s radadapter extends WindowAdapter{public void windowClosing(WindowEvent e){

System.exit(0);

}

}public void actionPerformed(ActionEvent e){if(e.getSourc e()==rad 1){s etTitle("启用第一个单选的按钮");rad 1.s etEnabled(fals e);rad2.s etEnabled(true);

}else if(e.getSourc e()==rad2){s etTitle("启用第二个单选按钮");rad 1.s etEnabled(true);rad2.s etEnabled(fals e);

}

}public static void main(String args[]){

MyRadiobuttons radb=new MyRadiobuttons();radb.setSize(200,100);radb.s etVis ib l e(true);

}

}

3创建一个菜单程序。添加一个菜单文件。在“文件”下添加三个菜单选项 “功

美国cera机房 2核4G 19.9元/月 宿主机 E5 2696v2x2 512G

美国特价云服务器 2核4G 19.9元杭州王小玉网络科技有限公司成立于2020是拥有IDC ISP资质的正规公司,这次推荐的美国云服务器也是商家主打产品,有点在于稳定 速度 数据安全。企业级数据安全保障,支持异地灾备,数据安全系数达到了100%安全级别,是国内唯一一家美国云服务器拥有这个安全级别的商家。E5 2696v2x2 2核 4G内存 20G系统盘 10G数据盘 20M带宽 100G流量 1...

易探云330元/年,成都4核8G/200G硬盘/15M带宽,仅1888元/3年起

易探云服务器怎么样?易探云是国内一家云计算服务商家,致力香港云服务器、美国云服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出的国内云服务器优惠活动,国内云服务器2核2G5M云服务器低至330元/年起;成都4核8G/200G硬盘/15M带宽,仅1888元/3年起!易探云便宜vps服务器配置推荐:易探云vps云主机,入门型云...

青果云(590元/年),美国vps洛杉矶CN2 GIA主机测评 1核1G 10M

青果网络QG.NET定位为高效多云管理服务商,已拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一,2019年荣获国家高薪技术企业、福建省省级高新技术企业双项荣誉。那么青果网络作为国内主流的IDC厂商之一,那么其旗下美国洛杉矶CN2 GIA线路云服务器到底怎么样?官方网站:https://www.qg.net/CPU内存系统盘流量宽带...

java实用教程为你推荐
微信如何建群微信怎么建立群ps抠图技巧photoshop抠图技巧中小企业信息化中小企业信息化途径有哪些天天酷跑刷金币天天酷跑如何刷分刷金币?如何建立自己的网站如何建立自己的网站商标注册查询官网怎么查商标有没有注册电子商务网站模板网页制作模板网管工具网吧工具有什么?虚拟机软件下载求一个免费虚拟机软件!!!请发送下载网站给我怎么上传音乐怎样可以上传本地音乐到网上?
虚拟主机服务商 欧洲免费vps 代理域名备案 com域名抢注 awardspace vpsio jsp主机 美国仿牌空间 美国php主机 免费个人博客 卡巴斯基免费试用 昆明蜗牛家 银盘服务 七夕快乐英语 国内域名 免费asp空间申请 阿里云邮箱登陆地址 中国联通宽带测速 privatetracker 湖南铁通 更多