5、 大部分的Swing组件都是___JComponent___类的直接或者间接子类,其名称都是在原来AWT组件
名称前加上字母J。
6、 AWT事件有多种多样,大致可以分为___窗体事件___、___键盘事件___、___鼠标事件___、___
动作事件___等。
7、 如果点击Frame窗口右上角的关闭按钮能将其关闭,那么这个Frame窗口添加了
___WindowListener___监听器,并实现了监听器的实现了___windowClosing(WindowEvent e)___方法。
8、 对话框可以分为___模态对话框___和___非模态对话框 ___两种。
9、 每一个容器都有一个默认的布局管理器,如果不希望通过布局管理器对容器进行布局,可以调用
容器的___setLayout(null)___方法将其取消。
10、创建下拉式菜单需要使用三个组件,分别是___JMenuBar___、___JMenu___和___JMenuItem___。 二、判断题。
1、容器(Container)是一个可以包含基本组件和其它容器的组件。对
2、可以通过实现ActionListener接口或者继承ActionAdapter类来实现动作时间监听器。错 3、CardLayout布局管理器将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的。对 4、非模态对话框是指用户需要等到处理完对话框后才能继续与其它窗口进行交互。错 5、JFrame的默认布局管理器是FlowLayout。错 三、选择题
1、下面四个组件中哪一个不是Component的子类?D
A、Button B、Dialog C、Label D、MenuBar 2、每一个GUI程序中必须包含一个什么组件?D
A、按钮 B、标签 C、菜单 D、容器
3、下面四个选项中,哪些是事件处理机制中的角色?(多选)ABD A、事件
B、事件源
C、事件接口 D、事件监听器
4、当鼠标按键被释放时,会调用以下哪个事件处理器方法?A A、mouseReleased() C、mouseOff()
B、mouseUp() D、mouseLetGo()
5、ActionEvent的对象会被传递给以下哪个事件处理器方法?D A、addChangeListener() B、addActionListener() C、stateChanged() D、actionPerformed() 6、AWT中,常用的布局管理器包括哪些?(多选)ABCD A、FlowLayout布局管理器 C、CardLayout布局管理器
B、BorderLayout布局管理器 D、GridLayout布局管理器
7、下面哪些是FlowLayout类中表示对齐方式的常量?(多选)ABD A、FlowLayout.LEFT
B、FlowLayout.CENTER D、FlowLayout.RIGHT
C、FlowLayout.VERTICAL
8、下面对与Swing的描述,正确的有哪些?(多选)ABC A、Swing 是在AWT基础上构建的一套新的图形界面系统 B、Swing提供了AWT 所能够提供的所有功能 C、Swing 组件是用Java代码来实现的 D、Swing组件都是重量级组件
9、下面四对AWT和Swing对应组件中,错误的是?D A、Button和JButton
B、Dialog和JDialog C、MenuBar和JMenuBar D、ComboBox和JComboBox
10、使用下面哪个组件可以接收用户的输入信息?C A、JButton B、JLabel C、JTextField D、以上都可以
四、程序分析题
阅读下面的程序以及注释的要求,在空格处填上相应的代码 代码一:
import java.awt.*; import javax.swing.*;
public class MyLayout __extends __/*此处填空*/ JFrame{
JLabel labelNo,labelName,labelGender; JTextField stdno,name,gender; int x=0,y=0,w,h;
Container cp=getContentPane(); public MyLayout() { }
setLayout(null);
学号=new JLabel(\、\姓名=new JLabel(\、\性别=new JLabel(\、\
_____Stdno = new JTextField();_______ // 此处填空 ____Name = new JTexxtField();_______ // 此处填空 gender=new JTextField(); x=80;y=30; w=100;h=30;
cp.add(labelNo); cp.add(labelName);cp.add(labelGender); cp.add(stdno);cp.add(name);cp.add(gender);
labelNo.setBounds(0,y,w,h); stdno.setBounds(x,y,w,h); labelName.setBounds(0,2*y,w,h);name.setBounds(x,2*y,w,h); labelGender.setBounds(0,3*y,w,h);gender.setBounds(x,3*y,w,h); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(280,200); setVisible(true);
}
public static void main(String args[]){ }
MyLayout obj=new MyLayout();
代码二:
import java.awt.CardLayout; import java.awt.Container;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class MyCardLayout {
public static void main(String args[]) {
final JFrame jframe = new JFrame(\一个滚动列表的例子\final Container panelcp = jframe.getContentPane(); final CardLayout card = new CardLayout (20, 20); panelcp.setLayout(card); for (int i = 0; i < 5; i++) {
JButton jbt = new JButton(\
jbt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
final JPanel panel = new JPanel();
jframe.add(panel);
// 点击的时候显示下一个按钮 }
}
}
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setSize(150, 200); jframe.setVisible(true);
}
____card.next(cp);____ // 此处填空
});
__cp.add(jbt);___ // 此处填空
五、简答题。
1、请简述GUI中实现事件监听的步骤。 参考答案
? 通过实现XxxListener接口或者继承XxxAdapter类实现一个事件监听器类,并对处理监听动作的
方法进行重写
? 创建事件源对象和事件监听器对象
? 调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象
2、AWT和Swing的区别 参考答案
AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,当我们利用 AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的\一次编译,到处运行\的概念,AWT 不得不通过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。
Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。由于在Swing 中没有使用本地方法来实现图形功能,我们通常把Swing控件称为轻量级控件。
AWT和Swing之间的基本区别:AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。对于一个嵌入式应用来说,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT 当然成了嵌入式Java的第一选择。而在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的Java中则提倡使用Swing,也就是通过牺牲速度来实现应用程序的功能。