Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程

Java Swing 事件处理实战解析:计数器计数器的增减控制

阿贵
3天前发布 /正在检测是否收录...
温馨提示:
本文最后更新于2025年08月28日,已超过3天没有更新,若内容或图片失效,请留言反馈。

Java Swing 事件处理实战解析:计数器计数器的增减控制

47.png

一、原题完整代码呈现

以下是计算机二级Java考试中关于Swing组件与事件处理的典型题型,主要考察容器组件添加、窗口可见性设置、事件监听器绑定绑定以及计数器以及计数器逻辑,包含4处需要填写的空白(标记为//*********Found**********):

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Java_3 {
    public static void main(String[ ] args) {
        JFrame frame = new JFrame("Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //*********Found**********
        frame.getContentPane().___________(new Change());

        frame.pack();
        //*********Found**********
        frame.setVisible(___________);
    }
}

class Change extends JPanel{

    int count = 200;
    JLabel l1;
    JButton b1, b2;

    public Change() {
        setPreferredSize(new Dimension(280, 60));
        l1 = new JLabel("200");
        b1 = new JButton("增大");
        b2 = new JButton("减小");
        add(l1);
        add(b1);
        add(b2);
        b1.addActionListener(new BListener1());
        //*********Found**********
        b2.addActionListener(new ___________());
    }

    private class BListener1 implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            count++;
            l1.setText("" + count);
        }
    }
    private class BListener2 implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            //*********Found**********
            count _________;
            l1.setText("" + count);
        }
    }
}

二、空白处逐一解析与解答

1. 第一处空白:添加面板到窗口

答案:add

//*********Found**********
frame.getContentPane().add(new Change());

解析
frame.getContentPane()获取窗口的内容面板(容器),需要将自定义面板Change添加到该容器中才能显示。add()是容器类的方法,用于添加组件,因此填写add

2. 第二处空白:设置窗口可见

答案:true

//*********Found**********
frame.setVisible(true);

解析
setVisible(boolean)方法控制窗口是否可见,参数为true时窗口显示,false时隐藏。程序需要显示主窗口,因此填写true

3. 第三处空白:绑定"减小"按钮的监听器

答案:BListener2

//*********Found**********
b2.addActionListener(new BListener2());

解析
"增大"按钮b1绑定了BListener1监听器,同理"减小"按钮b2需要绑定处理减小逻辑的BListener2监听器。通过new BListener2()创建监听器实例,因此填写BListener2

4. 第四处空白:实现计数减小逻辑

答案:--

//*********Found**********
count--;

解析
BListener2用于处理"减小"按钮的点击事件,需要将计数器count的值减1。count--是自减运算符,等价于count = count - 1,因此填写--

三、完整正确代码

四、程序功能与运行说明

程序功能

该程序实现一个简单的计数器控制界面,核心功能包括:

  1. 窗口中显示一个初始值为200的标签和两个按钮("增大"和"减小")
  2. 点击"增大"按钮:计数器值加1,标签实时更新
  3. 点击"减小"按钮:计数器值减1,标签实时更新
运行说明
  1. 程序启动后,显示标题为"Demo"的窗口,包含:

    • 标签(显示"200")
    • "增大"按钮(左侧)
    • "减小"按钮(右侧)
  2. 操作效果:

    • 点击"增大"按钮:标签数字依次变为201、202、203...
    • 点击"减小"按钮:标签数字依次变为199、198、197...
  3. 点击窗口关闭按钮(×),程序退出

五、核心知识点总结

  1. Swing组件的层次结构

    • 顶层容器:JFrame是窗口的基础,包含标题栏和内容面板
    • 内容面板:通过frame.getContentPane()获取,所有组件必须添加到该面板
    • 自定义面板:Change类继承JPanel,作为容器组织标签和按钮
    • 组件添加:使用add()方法将JLabelJButton添加到JPanel
  2. 事件处理机制的实现

    • 监听器接口:ActionListener用于处理按钮点击事件,需实现actionPerformed方法
    • 内部类监听器:

      • BListener1处理"增大"逻辑(count++
      • BListener2处理"减小"逻辑(count--
    • 事件绑定:通过addActionListener(new 监听器实例)将按钮与监听器关联
  3. 界面更新逻辑

    • 状态存储:count变量保存当前计数,初始值为200
    • 显示同步:每次修改count后,通过l1.setText("" + count)更新标签文本
    • 自动刷新:Swing组件在事件处理后自动重绘,确保界面实时反映数据变化
  4. 窗口初始化要点

    • 关闭操作:frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)确保关闭窗口时终止程序
    • 尺寸调整:pack()方法根据组件PreferredSize自动调整窗口大小
    • 可见性控制:setVisible(true)使窗口显示(默认不可见)

六、常见错误与应试技巧

  1. 常见错误分析

    • 第一处空白方法错误:写成addsput,正确方法是add
    • 第二处空白参数错误:写成1"true"setVisible需要布尔值true
    • 第三处空白监听器错误:写成BListener2遗漏new(如b2.addActionListener(BListener2())
    • 第四处空白运算符错误:写成count =- 1(语法错误)或count--遗漏分号
  2. 应试技巧

    • 组件添加口诀:"窗口找面板,面板加组件,用add方法链起来"
    • 事件绑定三步:"定义监听器类→实现actionPerformed→按钮.add(new 监听器())"
    • 计数器逻辑:"增大用++,减小用--,改完数据更界面"
    • 窗口显示:"pack()自动调大小,setVisible(true)才显示"

通过本题,我们掌握了Swing界面的组件组织、事件监听的实现方式以及数据与界面的同步更新。这类计数器控件在实际开发中常用于音量调节、数量控制等场景,考察对GUI事件驱动模型的理解和应用,是Java Swing编程的基础知识点。

喜欢就支持一下吧
点赞 2 分享 收藏
评论 抢沙发
OωO
取消 登录评论