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

Java Swing单选按钮实战:字体大小控制界面全解析

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

Java Swing单选按钮实战:字体大小控制界面全解析

99.png

一、原题完整代码呈现

以下是计算机二级Java考试中关于Swing单选按钮(JRadioButton)的典型题型,主要考察窗口可见性设置、组件实例化、事件方法参数及监听器绑定,包含4处需要填写的空白(标记为//*********Found**********):

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

public class Java_2{
  public static void main(String[] args){
    RadioButtonFrame frame = new RadioButtonFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//*********Found**********
    ___________________;
  }
}
class RadioButtonFrame extends JFrame{
  public RadioButtonFrame(){
    setTitle("Radio按钮实例");
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    Container contentPane = getContentPane();
    label = new JLabel("热烈庆祝Java程序语言开考三周年");
    label.setForeground(Color.yellow);
    contentPane.setBackground(Color.red);
    label.setFont(new Font("黑体", Font.PLAIN, DEFAULT_SIZE));
    contentPane.add(label, BorderLayout.CENTER);
    buttonPanel = new JPanel();
    group = new ButtonGroup();
    addRadioButton("小", 8);
    addRadioButton("中", 12);
    addRadioButton("大", 18);
    addRadioButton("特大", 30);
    contentPane.add(buttonPanel, BorderLayout.SOUTH);
  }
  public void addRadioButton(String name, final int size){
    boolean selected = size == DEFAULT_SIZE;
//*********Found**********
    JRadioButton button = new ____________________(name, selected);
    group.add(button);
    buttonPanel.add(button);
    ActionListener listener = new ActionListener(){
//*********Found**********
      public void actionPerformed(_____________________ evt){
        label.setFont(new Font("黑体", Font.PLAIN, size));
      }
    };
//*********Found**********
    button.addActionListener(__________________);
  }
  public static final int DEFAULT_WIDTH = 340;
  public static final int DEFAULT_HEIGHT = 200;
  private JPanel buttonPanel;
  private ButtonGroup group;
  private JLabel label;
  private static final int DEFAULT_SIZE = 12;
}

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

1. 第一处空白:设置窗口可见性

答案:frame.setVisible(true)

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

解析
Swing窗口(JFrame)默认处于不可见状态,需通过setVisible(true)方法使其显示。main方法中创建RadioButtonFrame实例后,必须调用此方法才能让用户看到窗口,因此填写frame.setVisible(true)

2. 第二处空白:创建JRadioButton实例的类名

答案:JRadioButton

//*********Found**********
JRadioButton button = new JRadioButton(name, selected);

解析
JRadioButton是Swing中单选按钮的组件类,创建实例需使用new关键字+类名+构造参数。此处参数name为按钮显示文本,selected为是否默认选中(size == DEFAULT_SIZE时选中“中”号按钮),因此填写JRadioButton

3. 第三处空白:actionPerformed方法的参数类型

答案:ActionEvent

//*********Found**********
public void actionPerformed(ActionEvent evt){

解析
ActionListener接口要求实现actionPerformed方法,其唯一参数类型为ActionEvent(封装事件相关信息,如事件源、触发时间等)。匿名内部类实现该接口时,参数类型必须匹配,因此填写ActionEvent

4. 第四处空白:绑定到按钮的监听器对象

答案:listener

//*********Found**********
button.addActionListener(listener);

解析
button.addActionListener方法需要传入一个ActionListener实例,用于处理按钮点击事件。前面已创建listener对象(实现了ActionListener接口),因此将其作为参数传入,填写listener

三、完整正确代码

四、程序功能与运行说明

程序功能

该程序是一个基于Swing的界面应用,通过单选按钮控制标签文本的字体大小,核心功能包括:

  1. 窗口顶部显示标签“热烈庆祝Java程序语言开考三周年”(黄色文字,红色背景)
  2. 窗口底部有4个单选按钮(“小”“中”“大”“特大”),分别对应8、12、18、30号字体
  3. 选中不同单选按钮时,标签文字会实时切换到对应大小(默认选中“中”号12号字体)
  4. 点击窗口关闭按钮可退出程序
运行说明
  1. 程序启动:main方法创建RadioButtonFrame窗口,设置标题为“Radio按钮实例”,大小340×200像素,调用setVisible(true)使其显示
  2. 初始状态:标签文字为12号黑体(默认选中“中”按钮),黄色文字在红色背景上清晰显示
  3. 交互效果:

    • 点击“小”按钮:文字变为8号字体
    • 点击“中”按钮:文字变回12号字体
    • 点击“大”按钮:文字变为18号字体
    • 点击“特大”按钮:文字变为30号字体
  4. 单选特性:ButtonGroup确保同一时间只有一个按钮被选中(互斥效果)

五、核心知识点总结

  1. Swing窗口基础控制

    • 可见性:setVisible(true)是窗口显示的关键,默认不可见
    • 关闭策略:setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)确保点击关闭按钮时程序终止(避免后台运行)
    • 布局管理:使用BorderLayout(默认布局),标签放中央(BorderLayout.CENTER),按钮面板放底部(BorderLayout.SOUTH
  2. 单选按钮(JRadioButton)与按钮组(ButtonGroup)

    • 组件创建:new JRadioButton(name, selected)初始化单选按钮,name为显示文本,selected指定是否默认选中
    • 互斥控制:ButtonGroup group管理多个单选按钮,通过group.add(button)将按钮加入组,确保只有一个按钮可被选中
    • 面板组织:按钮面板(JPanel buttonPanel)用于集中放置单选按钮,使布局更整洁
  3. 事件监听机制

    • 监听器创建:匿名内部类实现ActionListener接口,重写actionPerformed方法定义按钮点击后的逻辑(修改字体大小)
    • 事件绑定:button.addActionListener(listener)将监听器与按钮关联,点击按钮时自动触发actionPerformed方法
    • 字体修改:label.setFont(new Font("黑体", Font.PLAIN, size))通过size参数(8/12/18/30)动态调整字体大小
  4. 组件样式设置

    • 标签样式:label.setForeground(Color.yellow)设置文字颜色,contentPane.setBackground(Color.red)设置背景色
    • 字体定义:new Font("黑体", Font.PLAIN, size)指定字体名称、样式(普通)和大小
    • 尺寸常量:通过DEFAULT_WIDTHDEFAULT_HEIGHTDEFAULT_SIZE定义常量,提高代码可维护性

六、常见错误与应试技巧

  1. 常见错误分析

    • 第一处空白窗口可见性错误:遗漏此语句(窗口不可见,无法交互)或写成setVisible(true)(缺少对象frame,语法错误)
    • 第二处空白组件实例化错误:写成RadioButton(Swing中正确类名是JRadioButton,遗漏前缀J)或拼写错误(如JRadioButon
    • 第三处空白事件参数错误:写成ActionEvent的拼写错误(如ActionEvt)或使用Event(父类,不匹配方法定义)
    • 第四处空白监听器绑定错误:写成this(当前对象未实现ActionListener)或new ActionListener()(创建新实例而非使用已定义的listener
  2. 应试技巧

    • 窗口显示:“Swing窗口要可见,setVisible(true)莫忘记,对象.方法要记牢,否则界面看不见”
    • 单选按钮创建:“单选按钮JRadioButton,构造参数名和选,new出实例加组里,互斥效果靠ButtonGroup”
    • 事件方法参数:“ActionListener接口里,actionPerformed要实现,参数类型ActionEvent, evt变量常使用”
    • 监听器绑定:“按钮点击要响应,监听器对象传进去,前面定义listener,直接传入不犹豫”

通过本题,我们掌握了Swing中单选按钮的创建与管理、事件监听绑定、字体动态调整及窗口布局的综合技能。这类题型是“组件交互+界面反馈”模式的典型体现,对理解桌面应用中用户操作与界面响应的逻辑具有重要意义。

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