本章练习一答案


一、单选题

1.正确答案:A

答案解析:java.awt是一个软件包,包含用于创建用户界面和绘制图形图像的所有分类,所以选择A选项。

2.正确答案:C

答案解析:Window类、Frame类、Dialog类的默认布局管理器是BorderLayout。所以选择C选项。

3.正确答案:A

答案解析:一个事件源对象可以对应多个监听器,它拥有一个由监听器构成的队列,可以发出多种类型的事件。所以选择A选项。

4.正确答案:A

答案解析:FlowLayout布局中组件的大小为默认的最佳大小。组件之间的默认水平和垂直间隙是5个像素。所以选择A选项。

5.正确答案:D

答案解析:TextField类为文本框类,Label标签类、Checkbox为选择框类、Button为anniu类。语句Button b = new Button(“关闭”) 可以创建一个标识有“关闭”按钮。所以选择D选项。

二、多选题

1.正确答案:AC

答案解析:Frame类、Panel类可以创建容器对象。Checkbox类和TextField类可以创建组件对象。

2.正确答案:AD

答案解析:不同的事件类需要实现不同的监听器接口,在接口中定义了不同的监听器方法,同时一个事件源对象可以对应多个监听器,它拥有一个由监听器构成的队列,可以从控件上删除事件监听器。所以BC选项错误,AD须向正确。

三、简答题

1.单击鼠标是发生MouseEvent事件。

MouseEventmouseRelease();mousePressed();mouseExited();mouseClicked();mouseEntered();

2.文本框(TextField)和标签(Label)都可以进行文字表达。TextField允许用户编辑单行文本的文本组件,他可以添加相应的监听事件;而Label 对象是一个可在容器中放置文本的组件。一个标签只显示一行只读文本。文本可由应用程序更改,但是用户不能直接对其进行编辑。

四、编程题

1. import java.awt.*;

import javax.swing.event.*;

import javax.swing.*;

import java.awt.event.*;

public class E {

  public static void main(String args[]) {

    Computer fr=new Computer();

  }

}

class Computer extends JFrame implements DocumentListener {

  JTextArea text1,text2;

  int count=1;

  double sum=0,aver=0;

  Computer() {

    setLayout(new FlowLayout());

    text1=new JTextArea(6,20);

    text2=new JTextArea(6,20);

    add(new JScrollPane(text1));

    add(new JScrollPane(text2));

    text2.setEditable(false);

    (text1.getDocument()).addDocumentListener(this);

    setSize(300,320);

    setVisible(true);

    validate();

    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

}

public void changedUpdate(DocumentEvent e) {

    String s=text1.getText();

    String []a =s.split("[^0123456789.]+");

    sum=0;

    aver=0; 

    for(int i=0;i<a.length;i++) {

      try { sum=sum+Double.parseDouble(a[i]);

    }

      catch(Exception ee) {}

    }

    aver=sum/count;

    text2.setText(null);

    text2.append("\n和:"+sum);

    text2.append("\n平均值:"+aver);

  }

  public void removeUpdate(DocumentEvent e){

    changedUpdate(e); 

  }

  public void insertUpdate(DocumentEvent e){

    changedUpdate(e);

  }

}