Swing中单选按钮

news/2024/12/1 18:46:39/

一、单选按钮

单选按钮是Swing组件中JRadioButton类的对象,该类是JToggleButton的子类,而JToggleButton是AbstractButton的子类,所以控制单选按钮的诸多方法都是AbstractButton类中的方法。

二、JRadioButton类的常用构造方法

1、public JRadioButton()

2、public JRadioButton(Icon icon)

3、public JRadioButton(Icon icon,boolean selected)

4、public JRadioButton(String text)

5、public JRadioButton(String text,Icon icon)

6、public JRadioButton(String text,Icon icon,boolean selected)

上述构造形式,可以知道在初始化单选框按钮时,可以同时设置单选框按钮的图标、文字及默认是否被选中等属性。

三、按钮组

在Swing中有一个ButtonGroup类,用于产生按钮组。如果将所有单选框按钮放置在按钮组中,则需要实例化一个JRadioButton对象,使用该对象调用add()方法添加按钮。

四、程序代码(例子)

java">import javax.swing.*;
import java.awt.*;
import java.net.URL;public class JRadioButtonTest extends JFrame {public JRadioButtonTest() {// 从类路径中加载图标资源,确保路径以'/'开头表示从类路径的根开始查找URL url = getClass().getResource("/Button.jpg");Icon icon = new ImageIcon(url);// 检查图标是否成功加载,如果图标的宽度或高度为-1,则表示加载失败if (icon.getIconWidth() == -1 || icon.getIconHeight() == -1) {System.out.println("Failed to load icon");}// 设置窗体布局为网格布局,3行2列,组件间水平和垂直间距为5像素setLayout(new GridLayout(3, 2, 5, 5));// 创建三个单选按钮,初始时不设置文本JRadioButton jr1 = new JRadioButton();JRadioButton jr2 = new JRadioButton();JRadioButton jr3 = new JRadioButton();// 创建一个按钮组,确保单选按钮组中只能选择一个按钮ButtonGroup buttonGroup = new ButtonGroup();// 为每个单选按钮设置图标jr1.setIcon(icon);jr2.setIcon(icon);jr3.setIcon(icon);// 将单选按钮添加到按钮组中buttonGroup.add(jr1);buttonGroup.add(jr2);buttonGroup.add(jr3);// 设置窗体标题setTitle("单选按钮组件");// 将单选按钮添加到窗体中add(jr1);add(jr2);add(jr3);// 设置窗体大小setSize(300, 300);// 设置关闭窗体时的默认操作,EXIT_ON_CLOSE表示关闭窗体时退出程序setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 设置窗体可见setVisible(true);}public static void main(String[] args) {// 使用SwingUtilities的invokeLater方法确保GUI的创建和更新在事件调度线程中进行SwingUtilities.invokeLater(() -> new JRadioButtonTest());}
}

五、程序运行结果


http://www.ppmy.cn/news/1551546.html

相关文章

深度解读sparkRDD宽窄依赖

RDD以及依赖关系介绍 RDD(弹性分布式数据集):是Spark的核心数据结构,它代表一个不可变、可分区、里面的元素可以并行计算的集合。RDD具有容错性,当某个分区的数据丢失时,可以通过转换操作的血缘关系重新计算…

信息网络安全考试gjdw

序号 一级纲要 二级纲要 题目分类 题型 题干 选项 答案 题目依据 试题分数 试题编码 备注 说明 1 信息安规 \ 专业题库 单选题 根据信息安规规定,试验和推广信息新技术,应制定相应的( ),经本单位…

yolov5 解决:Traceback (most recent call last)

运行train.py程序后训练之后,到最后验证的那一步报一个线程异常的错误 原因:pillow版本太高了,把pillow降级就行了 pillow官网上的python对应版本 在conda中,您可以安装pillow的任何可用版本。要查看可用的pillow版本,…

在并发情况下,Elasticsearch如果保证读写一致?

大家好,我是锋哥。今天分享关于【在并发情况下,Elasticsearch如果保证读写一致?】面试题。希望对大家有帮助; 在并发情况下,Elasticsearch如果保证读写一致? 1000道 互联网大厂Java工程师 精选面试题-Java…

Vue.js 中的事件监听与事件修饰符

在 Vue.js 中,事件监听是一种常见的交互方式,它允许我们在用户与界面交互时执行特定的代码。Vue.js 提供了一种简洁的语法来绑定事件监听器,并且支持事件修饰符来控制事件的行为。在本篇博客中,我们将详细介绍 Vue.js 中的事件监听…

自然语言处理期末试题汇总

建议自己做,写完再来对答案。答案可能存在极小部分错误,不保证一定正确。 一、选择题 1-10、C A D B D B C D A A 11-20、A A A C A B D B B A 21-30、B C C D D A C A C B 31-40、B B B C D A B B A A 41-50、B D B C A B B B B C 51-60、A D D …

css瀑布流

要实现CSS瀑布流布局&#xff0c;可以使用CSS Grid或CSS Columns。以下是两种方法的简要说明&#xff1a; <div class"list"><div class"list_item"><div>1</div><div>2</div><div>3</div></div>&…

Android实现桌面小部件:今天吃什么

今天吃什么桌面小部件是专为解决日常选择困难症而设计的安卓小部件&#xff0c;它通过轻松愉快的滚动机制&#xff0c;帮助玩家在诸如“今天吃什么”这样的日常琐事中迅速做出决定。 不知道吃什么&#xff1f;别担心&#xff0c;点我帮你选择&#xff01; 创建各个UI背景 app_…