java程序设计试题库 下载本文

《Java语言程序设计基础教程》

37

B.windowClosed() C.windowActivated() D.mouseDragged()

8、JAVA中,容器被重新设置后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变(B)

(A)CardLayout (B)FlowLayout (C)BorderLayout (D)GridLayout

6.2填空题

1、Java中GUI工具包有__java.awt____和__java.Swing____。 2、通过调用方法__setLayout____可以改变当前容器的布局方式。 3、通过__add____方法向容器中添加组件。

4、AWT布局管理器有______、______、______、______和______。

5、图形用户界面的设计中有事件处理模型处理事件,在该模型中主要包括事件源、事件对象和________事件监听器

6、_______BorderLayout布局管理器包括五个明显的区域:东、南、西、北、中。

6.3简答题

1、请举例简要说明JAVA语言使用事件监听器进行事件处理的过程。

首先事件监听器(包含真正处理事件的代码)向事件源(与事件关联的控件,如按钮、滚动条)注册,事件(敲击键盘,或点击鼠标)发生时,事件源向事件监听器发送一个事件对象(如果在该事件源上注册了多个事件监听器,则向所有的监听器发送)

1)对于某种类型的事件XXXEvent, 要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener;

2)事件源实例化以后,必须进行授权,注册该类事件的监听器,使用addXXXListener(XXXListener ) 方法来注册监听器。

2、什么是布局管理器?

解答:Java语言中,提供了布局管理器(LayoutManager)这个工具来管理组件在容器中的布局,如:排列顺序,组件的大小、位置,当窗口移动或调整大小后组件如何变化等,而不使用直接设置组件位置和大小的方式。

每个容器都有一个布局管理器,不同的布局管理器使用不同算法和策略,当容器需要

37

38

《Java语言程序设计基础教程》

对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。容器可以通过选择不同的布局管理器来决定布局。

3、JAVA的事件处理模型主要涉及到哪3类对象,简单介绍其内容。 解答:

事件:用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。

事件源:事件发生的场所,通常就是各个组件,例如按钮Button。 事件处理者:接收事件对象并对其进行处理的对象。

4、简述JAVA的组件Component类和容器Container类。

解答:Java的图形用户界面的最基本组成部分是组件(Component),组件是一个以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。

容器java.awt.Container也是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。一个容器可以容纳多个组件,并使它们成为一个整体。容器可以简化图形化界面的设计,以整体结构来布置界面。

6.4综合题

1、利用AWT控件编写一个求解一元二次方程根的程序,要求:

(1)具有一元二次方程三个系数a、b、c的输入界面。 (2)显示b*b-4*a*c的值。 (3)显示求出的根。

2、编写一个应用程序,实现一个基于图形用户界面的加法运算器的功能,窗口中用TextField类来创建三个文本框,用Label类来创建“+”号,用Button类来创建按钮。并通过实现ActionListener接口的监听器,完成如下功能:当用户点击按钮时,对前面两个文本框的数进行相加,并将结果显示在第三个文本框中,如下图所示。

import java.awt.*;

38

《Java语言程序设计基础教程》

import java.awt.event.* ;

public class TFMath{ public static void main(String[] args){ new TFFrame() ;

}

}

class TFFrame extends Frame{ TextField num1,num2,num3 ; TFFrame(){ num1=new TextField(10) ; num2=new TextField(10) ; num3=new TextField(15) ; Label lblPlus =new Label(\ Button btnEqual =new Button(\

btnEqual.addActionListener(new MyMonitor()) ; setLayout(new FlowLayout()) ; add(num1); add(lblPlus); add(num2); add(btnEqual); add(num3); pack();

setVisible(true);

}

//private class MyMonitor implements ActionListener{ //类访问它

class MyMonitor implements ActionListener{ public void actionPerformed(ActionEvent e){

int n1 = Integer.parseInt(num1.getText()) ; int n2 = Integer.parseInt(num2.getText()) ; num3.setText(\ }

}

}

39

利于封装,不让别的39

40

《Java语言程序设计基础教程》

3、编写一个主类为TestGUI的程序实现如下功能:给出一个窗口,带有一个文本框和一个按钮,文本框输入用,用于输入字符。点击按钮后统计字符个数,并输出显示“你输入字符的个数为: ”。

import java.awt.*; import java.awt.event.*;

//import javax.swing.JOptionPane; public class TestGUI extends Frame{

40

private TextField tf = null; private Button btn = null;

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

public void init() {

//窗口关闭事件

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) { }

System.exit(0);

new TestGUI().init();

});

setLayout(new FlowLayout()); tf = new TextField(15); btn = new Button(\计算\//按键响应事件

btn.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { }

String s = \你输入字符的个数为:\//JOptionPane.showMessageDialog(null,s); System.out.println(s);

//弹窗显示结果

});