《Java基础入门》课后习题答案
第8章 GUI(图形用户界面)
一、填空题
1、在Java 中,图形用户界面简称:  GUI
2、事件:  负责监听事件源上发生的事件,并对各种事件做出响应处理。
3、GUI 设计提供了一些基本的图形用户接口开发工具,如 AWT:  Swing  和JavaFX。
4、.如果单击 Frame窗口有上角的关闭按相能将其关闭:那么这个Frame窗口添加了: WindowListener ,并实现了:windowClosing(WindowEvent e)  的 方法。
5、创建下拉式菜单需要使用三个组件,分别是 :    JMenuBar、JMenu、JMenuItem
二、判断题
1、容器(Container)是一个可以包含基本组件和其他容器的组件。  对
2.可以通过实现 AetionListener 接口或者继承 AconAdpter 类来实
现动作事件。                      错
3.CardLayout 布局管理器将界面看做一系列卡片,在任何时候只有
其中一张卡片是见的。                  对
4.非模态对话框是指用户需要等到处理完对话框后才能继续与其他
窗口进行交互。                          错
5.JFrame 的默认布局管理器是 FlowLayout。  错
三、选择题
1.下面四个组件中哪一个不是 JComponent 的子类?  (B)
A.JButton  B.JDialog  C. JLabel  D.JMenuBar
2.下面四个选项中,哪些是事件处理机制中的角?(多选)  (ABD)
A.事件  B.事件源  C.事件接口  D.事件
3. ActionEvent 的对象会被传递给以下哪个事件处理器方法? (D)
A.addChangeListener()  B. addActionListener()
C. stateChanged()  D. actionPerformed()
4.下面哪些是 FlowLayout 类中表示对齐方式的常量?(多选) (ABD)
A.FlowLayout.LEFT      B.FlowLayout.CENTER
C. FlowLayout. VERTICAL  D. FlowLayout. RIGHT
5.下列选项中关于JavaFX,描述错误的是 (C )
A.JavaFX是一个强大的图形和多媒体处理工具包集合
B. JavaFX 允许开发者来设计、创建、测试、调试和部署客户端程序
C.JavaFX不能与Swing实现互操作
D.JavaFX可以实现跨平台功能
 
四、简答题
1、请简述GUI 中实现事件监听的步骤:
通过实现XxxListener接口或者继承XxxAdapter类实现一个事件类,并对处理监听动作的方法进行重写
创建事件源对象和事件对象
调用事件源的addXxxLisntener()方法,为事件源注册事件对象
2、请简述Swing 中的布局管理器有哪些。
答:  Swing工具在AWT的基础上提供了8种布局管理器,分别为BorderLayout(边界布局管理器)、BoxLayout(箱式布局管理器)、CardLayout(卡片布局管理器)、FlowLayo
ut(流式布局管理器)、GridBagLayout(网格包布局管理器)、GridLayout(网格布局管理器)、GroupLayout(分组布局管理器)和SpringLayout(弹性布局管理器)。
3、Swing 事件处理的过程中涉及哪些对象。
事件源(Event Source):事件发生的场所,通常就是产生事件的组件,例如窗口、按钮、菜单等。
事件对象(Event):封装了GUI组件上发生的特定事件(通常就是用户的一次操作)。
(Listener):负责监听事件源上发生的事件,并对各种事件做出相应处理的对象(对象中包含事件处理器)。
编程题
1.编写一个JFrame 窗口,要求如下:
(1)在窗口的最上方放置一个 JLabel 标签,标签中默认的文本是”此处显示鼠标右键单击的坐标”
(2)为JFrame 窗口添加一个鼠标事件,当鼠标右键单击衡口时,鼠标的坐标在JLabel标签中显示。
2.编写一个 JFrame 窗口,要求如下:
(1)窗口中的 NORTH区域中放置一个 JPanel 面板。
(2)JPanel 面板中从左到右依次放置如下组件:
a.1个JLabel 标签,标签的文本为“兴趣
b .3个JChckBox 多选按钮,文本分别为“羽毛球”“乒乓球”“唱歌’。
c .1个JLabel 标签, 标签的文本为“性别”
d .两个 JRadioButton 按钮,文本分别为“男”“女”。
(3)窗口的 CENTER 区域放置一个 JScrollPane 容器,容器中放置
一个 JTextArea文本。
(4)当单击多选按钮和单选按钮时,会把选中按钮的文本显示在JTextArea 文本域中.
五、编程题
1、参考答案
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyMouseHandler extends JFrame {
    public MyMouseHandler() {
        final JLabel label = new JLabel("此处显示鼠标右键点击的坐标");
        label.setOpaque(true);
        label.setBackground(Color.PINK);
        this.add(label, BorderLayout.NORTH);
        this.setSize(300, 200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == MouseEvent.BUTTON1) {
                    int x = e.getX();
                    int y = e.getY();
                    String banner = "鼠标当前点击位置的坐标是" + x + "," + y;
                    label.setText(banner);
                }
            }
        });
        this.setVisible(true);
    }
    public static void main(String[] args) {
        new MyMouseHandler();
    }
}
2、参考答案
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
public class Information extends JFrame {
    // 窗口NORTH部的JPanel面板
    private JPanel panel = new JPanel();
    // 爱好标签
    private JLabel lb1 = new JLabel("兴趣");
    // 三个表示爱好的JCheckBox复选框
    private JCheckBox cb1 = new JCheckBox("羽毛球");
    private JCheckBox cb2 = new JCheckBox("乒乓球");
    private JCheckBox cb3 = new JCheckBox("唱歌");
    // 性别标签
    private JLabel lb2 = new JLabel("性别");
    // 表示性别的JRadioButton单选框
    private JRadioButton rb1 = new JRadioButton("男");
    private JRadioButton rb2 = new JRadioButton("女");
    // ButtonGroup添加JRadioButton,实现单选功能
    private ButtonGroup bg = new ButtonGroup();
    // 文本域组件
    private JTextArea area = new JTextArea();
    // 窗口CENTER部的JScrollPane面板,其中放置area文本域
    private JScrollPane pane = new JScrollPane(area);
    // Set集合存放选中的兴趣
    private Set<String> hobbies = new HashSet<String>();
    // gender选中的性别
    private String gender = "";
    // JCheckBox复选框的事件
    private ActionListener listener1 = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JCheckBox cb = (JCheckBox) e.getSource();
            // 选中的复选框把文本添加到Set集合中
            if (cb.isSelected()) {
                hobbies.Text());
计算机专业java            //  反之从集合中移除
            } else {
                Text());
            }
            print();
        }
    };
    // JRadioButton单选框的事件
    private ActionListener listener2 = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JRadioButton jb = (JRadioButton) e.getSource();
            gender = jb.getText();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。