《Java基础入门》课后习题及答案资料

1、 Java中,图形用户界面简称___GUI___,它的组件包含在___java.awt___和___javax.swing___这两个包中。

2、 为了避免实现监听器中定义的所有方法,造成代码的臃肿,在JDK中提供了一些___适配器___

类,这些类实现了接口所有的方法,但是方法中没有任何代码,属于一种空实现。 3、 在Java中,___Graphics___类相当于一个抽象的画笔对象,使用它可以在组件上绘制图形。 4、 ___事件监听器___负责监听事件源上发生的事件,并对各种事件做出响应处理。

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);

}

____card.next(cp);____ // 此处填空

});

__cp.add(jbt);___ // 此处填空

联系客服:779662525#qq.com(#替换为@)