java按钮组件(JButton、JCheckBox)

article/2025/9/27 14:40:52

按钮在Swing中是比较常见的组件,用于触发特定动作,Swing中提供多种按钮组件,如按钮、单选按钮、复选框等,这些按钮都是从AbstractButton类中继承而来的,下面将讲解这些按钮的应用。

1.JButton按钮组件

Swing中的按钮有JButton对象表示,其构造方法主要有以下几种形式。

  • public JButton():创建不带有设置文本或图标的按钮;
  • public JButton(string text):创建一个带文本的按钮;
  • public JButton(Icon icon):创建一个带图标的按钮;
  • public JButton(string text,Icon icon):创建一个带初始文本和图标的按钮;

使用JButton创建完按钮之后,如果要对按钮进行设置,可以使用JButton类提供的方法,JButton类的常用方法及说明如下表:

方法说明
setIcon(Icon defaultIcon)设置按钮的默认图标(defaultIcon)
setToolTipText(String text)为按钮设置提示文字(text)
setBorderPainted(boolean b)设置borderPainted属性,如果该属性为true并且按钮有边框,则绘制该边框,borderPainted属性的默认值为true
set Enabled(boolean b)设置按钮是否可用,参数为true表示按钮可用,为false表示按钮不可用

上述这些对按钮进行设置的方法大多来自JButton的父类AbstractButton类,这里只是简单列举了几个常用的方法,如果有需要可以查询javaAPI,查找更多方法实现相应的功能。

下面是一个有关按钮的实例,代码如下:


import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;public class Demo extends JFrame {public Demo() {Icon icon = new ImageIcon("src/imageButtoo.jpg");			// 获取图片文件setLayout(new GridLayout(3, 2, 5, 5));						// 设置网格布局管理器Container c = getContentPane();								// 创建容器JButton btn[] = new JButton[6];								// 创建按钮数组for (int i = 0; i < btn.length; i++) {btn[i] = new JButton();									// 实例化数组中的对象c.add(btn[i]);											// 将按钮添加到容器中}btn[0].setText("不可用");btn[0].setEnabled(false);									// 设置其中一些按钮不可用btn[1].setText("有背景色");btn[1].setBackground(Color.YELLOW);btn[2].setText("无边框");btn[2].setBorderPainted(false);								// 设置按钮边框不显示btn[3].setText("有边框");btn[3].setBorder(BorderFactory.createLineBorder(Color.RED));// 添加红色线型边框btn[4].setIcon(icon);										// 为按钮设置图标btn[4].setToolTipText("图片按钮");							// 设置鼠标悬停时提示的文字btn[5].setText("可点击");btn[5].addActionListener(new ActionListener() {				// 为按钮添加监听事件public void actionPerformed(ActionEvent e) {// 弹出确认对话框JOptionPane.showMessageDialog(Demo.this, "点击按钮");}});setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);setTitle("创建不同样式的按钮");	setBounds(100, 100, 400, 200);}public static void main(String[] args) {new Demo();}
}

返回结果:

上述代码中为可点击的按钮做了触发事件,当点击此按钮会弹出来一个对话框,如下图:

2.JRadioButton单选按钮组件

在默认情况下,单选按钮显示一个圆形图标,并且通常在该图标旁显示说明性文字,而在应用程序中,一般将多个单选按钮放置在按钮中,是这些单选按钮实现某种功能,当用户选中某个单选按钮后,按钮组中其他按钮将自动取消,单选按钮是Swing组件中JRadioButton类的子类,所以控制单选按钮的诸多方法都是AbstractButton类中的方法。

2.1单选按钮

可以使用JRadioButton类中的构造方法创建单选按钮对象,JRadioButton类的常用构造方法主要有以下几种形式:

  • public JRadioButton():创建一个初始化为未选择的单选按钮,其文本未设定;
  • public JRadioButton(Icon  icon):创建一个未被选择的单选按钮,其具有指定的图像但无文本;
  • public JRadioButton(Icon icon,boolean selected):创建一个具有指定图像和选择状态的单选按钮,但无文本;
  • public JRadioButton(String text):创建一个具有指定文本的、状态为未选择的单选按钮;
  • public JRadioButton(String text,Icon icon):创建一个具有指定文本和图像、未被选择的单选按钮;
  • public JRadioButton(String text,Icon icon,boolean selected):创建一个具有指定的文本、图像和选择按钮状态的单选按钮;

根据上述构造方法的形式,可以知道在初始化单选按钮时,可以同时设置单选按钮的图标、文字、以及默认是否被选中等属性,例如,使用JRadioButton类的构造方法创建一个文本为选项A的单选按钮,代码如下:

JRadioButton jr = new JRadioButton("选项A");

2.2按钮组

在Swing中存在一个ButtonGroup按钮组类,该类可以将多个单选按钮绑在一起,实现选项有很多,但只能选中一个的效果,实例化ButtonGroup对象之后可以使用add()方法将多个单选按钮添加到按钮组中,代码如下:

JRadioButton jr1 = new JRadioButton("按钮1");
JRadioButton jr2 = new JRadioButton("按钮2");
JRadioButton jr3 = new JRadioButton("按钮3");
ButtonGroup group = new ButtonGroup();
group.add(jr1);
group.add(jr2);
group.add(jr3);

从上述代码中可以看出,单选按钮与按钮的用法基本类似,只是创建单选按钮对象后需要将其添加至按钮组中,下面来看一个实例,模拟选择邮件的发送方式,向窗体添加两个单选按钮,并分别为它们添加动作事件监听器,再该事件监听器中实现选中单选按钮时弹出提示的功能,代码如下:


import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;public class Dpc extends JFrame {public Dpc() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle("单选按钮的使用");setBounds(100, 100, 220, 120);setVisible(true);Container ct = getContentPane();ct.setLayout(null);// 设置绝对布局//创建标签JLabel lblNewLabel = new JLabel("请选择发送方式:");lblNewLabel.setBounds(5, 5, 120, 15);ct.add(lblNewLabel);//创建单选按钮JRadioButton rbtnNormal = new JRadioButton("普通发送");//设置单选按钮默认选择状态truerbtnNormal.setSelected(true);rbtnNormal.setFont(new Font("宋体", Font.PLAIN, 12));rbtnNormal.setBounds(20, 30, 75, 22);rbtnNormal.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {if (rbtnNormal.isSelected())// 判断普通发送单选按钮是否选中//弹出对话框JOptionPane.showMessageDialog(null, "您选择的是:" + rbtnNormal.getText(), "提醒",JOptionPane.INFORMATION_MESSAGE);}});JRadioButton rbtnPwd = new JRadioButton("加密发送");rbtnPwd.setFont(new Font("宋体", Font.PLAIN, 12));rbtnPwd.setBounds(100, 30, 75, 22);rbtnPwd.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {if (rbtnPwd.isSelected())// 判断加密发送单选按钮是否选中//弹出对话框JOptionPane.showMessageDialog(null, "您选择的是:" + rbtnPwd.getText(), "提醒",JOptionPane.INFORMATION_MESSAGE);}});//将单选按钮添加到容器ct.add(rbtnPwd);ct.add(rbtnNormal);/*** 创建按钮组,把交互面板中的单选按钮添加到按钮组中*/ButtonGroup group = new ButtonGroup();group.add(rbtnNormal);group.add(rbtnPwd);}public static void main(String[] args) {new Dpc();}
}

返回结果:

                 

3.JCheckBox

复选框在Swing组件中的使用也非常广泛,它具有一个方块图标,外加一段描述性文字,与单选按钮唯一不同的是,复选框可以进行多选操作,每一个复选框都提供选中(true)不选中(false)两个状态,复选框用JCheckBox类的对象表示,他用样继承于AbstractButton类,所以复选框组件的属性也来源于AbstractButton类,构造方法如下:

  • public JCheckBox():创建一个没有文本,没有图标并且最初未被选定的复选框;
  • public JCheckBox(icon icon,Boolean checked):创建一个带图标的复选框,并指定其最初是否处于选定状态;
  • public JCheckBox(String text,Boolean checked):创建一个带文本的复选框,并指定其最初是否处于选定状态;

下面看一个例子,使用JCheckBox类的构造方法创建3个复选框对象,使用JButton类创建一个普通按钮,给按钮添加监听事件,用于控制台打印3个复选框的选中状态,代码如下:


import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class Dpc extends JFrame {public Dpc() {Container c = getContentPane();// 获取窗口容器c.setLayout(new FlowLayout());// 容器使用流布局setBounds(100, 100, 170, 110);// 窗口坐标和大小setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);JCheckBox c1 = new JCheckBox("1");// 创建复选框JCheckBox c2 = new JCheckBox("2");JCheckBox c3 = new JCheckBox("3");c.add(c1);// 容器添加复选框c.add(c2);c.add(c3);JButton btn = new JButton("打印");// 创建打印按钮btn.addActionListener(new ActionListener() {// 打印按钮动作事件public void actionPerformed(ActionEvent e) {// 在控制台分别输出三个复选框的选中状态System.out.println(c1.getText() + "按钮选中状态:" + c1.isSelected());System.out.println(c2.getText() + "按钮选中状态:" + c2.isSelected());System.out.println(c3.getText() + "按钮选中状态:" + c3.isSelected());}});c.add(btn);// 容器添加打印按钮}public static void main(String[] args) {new Dpc();}
}

返回结果:

 


http://chatgpt.dhexx.cn/article/HvHlG87E.shtml

相关文章

JButton部分常用的方法

本篇文章将会教会大家JButton常用的使用方法 JButton是Swing的组件所以需要导入包 import javax.swing.*;1创建JButton //创建JButton JButton jButton new JButton(); //将JButton添加到面板里 jPanel.add(jButton);2设置JButton大小以及坐标 //设置JButton大小 jButton.…

07.JavaSwing(常用基础组件——JButton类)

一、概述 JButton组件是最简单的按钮组件&#xff0c;在按下和释放2个状态之间进行切换&#xff0c;可以通过捕捉按下并释放的动作执行一些操作&#xff0c;从而完成和用户之间的交互。 二、构造函数 JButton();//创建不带有设置文本或图标的按钮。 JButton(Icon icon);//创建…

【CSS】使HTML页面表格中文字水平且垂直居中的方法(易错)

问题出现 因为是td直接写的文字&#xff0c;并不是套了标签才写&#xff0c;水平居中很清楚就是text-aline: center; 但是垂直居中始终没有得到很好地解决&#xff0c;查找了网上的样式是vertical-align: middle&#xff1b; 试了一下没有效果&#xff0c;很苦恼。 解决办法 …

css水平垂直居中方式总结

这里写目录标题 1. text-align: center;文字水平居中&#xff1b;margin: 0 auto;自身水平居中2. 绝对定位margin&#xff08;元素需要固定宽高&#xff09;3. 绝对定位 transform: translate(-50%,-50%);4. 绝对定位margin: auto;5.父元素设置display: flex;justify-content: …

CSS水平垂直居中的几种实现方式

水平垂直居中 1.利用 position:absolute2. 利用margin:auto3. 利用弹性盒子4. 利用水平对齐和行高5. 最简便的方法 1.利用 position:absolute <div class"father"><div class"son"></div> </div>当已知元素宽度和高度时&#xff…

div+css实现水平/垂直/水平垂直居中超详解

目录 一、水平居中1.块级元素水平居中方法一:设置margin:0 auto方法二:设置flex布局方法三:设置css3的transform 2.行内元素水平居中行内元素在块级元素中水平居中方法一&#xff1a;将外层块级元素设置为text-align&#xff1a;center方法二&#xff1a;将行内元素设置为块级元…

16种CSS水平垂直居中方法

16种css水平垂直居中方法以及应用&#xff08;文字、图片&#xff09; 一、垂直居中 1、行内元素 基本思想&#xff1a;单行文本子元素line-height 值为父元素 height 值 .parent {height: 200px; }.son {line-height: 200px; }2、块级元素 2.1行内块级元素 基本思想&…

【CSS】CSS实现水平垂直居中

元素水平垂直居中的场景很常见&#xff0c;常用的方法如下&#xff1a; &#xff08;以下方法在chorme测试可行&#xff09; 一、文本垂直居中 <div class"test">这是一段文字</div>.test {width: 200px;height: 200px;background: orange;text-align:…

CSS实现水平垂直居中

方法1&#xff1a;position transform 先设置一个父元素和一个子元素 <div class"father"><div class"child"></div> </div> 给父元素添加相对定位 .father {position: relative; /* 省略部分代码 */ } 给子元素添加绝对定位…

css grid布局实现水平垂直居中 文字水平垂直居中

原来一直使用flex布局来实现水平垂直居中&#xff0c;今天才知道还有grid也是很好用的&#xff0c;参考阮一峰大神的博客&#xff0c;简单记录一下学习&#xff1b; <div class"container"> <div class"item">1</div><…

html css实现文本水平垂直居中显示

这几天在工作中遇到了一个小问题&#xff1a;文本内容怎么能在div里水平垂直居中显示呢&#xff1f;同时群里的小伙伴恰巧也有提问这个问题的&#xff0c;所以我就总结了一下我知道的方法。 一、利用行高(line-height)和vertical-align配合实现 具体做法如下&#xff1a; ht…

CSS 布局 - 水平 垂直对齐

CSS 布局 - 水平 & 垂直对齐 那么怎样设置居中对齐呢? 我们可以用margin: auto来设置水平居中对其元素。auto可以防止 元素的宽高溢出&#xff0c;而且也可以平均分配两边的空白。 举例说明: .center {padding: 23px;border: 5px solid red;width: 41%;margin: auto; }那…

CSS如何实现水平垂直居中?4种工作中非常常用的方法

*CSS如何实现水平垂直居中&#xff1f; ** 1.用定位中的 “子绝父相” 来做 [核心代码是给子盒子添加的margin-top、margin-left 分别等于自身的高度、宽度的负的 一半] PS&#xff1a;缺点&#xff1a;需要提前知道元素的尺寸。如果不知道元素尺寸&#xff0c;这个时候就需要…

CSS实现元素水平垂直居中的各种方法

关于 CSS 如何将元素进行水平垂直居中的几种常用方法 前言 在设计网页页面的过程中&#xff0c;总会有将元素或者文字进行水平或者垂直居中的要求&#xff0c;各种CSS样式调整&#xff0c;搞的头都大了。这里将会介绍 CSS 中几种常用到的水平垂直居中的方法&#xff0c;希望能够…

CSS水平垂直居中常见方法总结(转)

文章目录 一、简介二、元素水平居中三、元素水平垂直居中3.1 position 元素已知宽度3.2 position transform 元素未知宽度3.3 flex布局3.4 table-cell布局 一、简介 说明&#xff1a;本篇文章只是总结一些方法&#xff0c;例子用到的各个元素属性不做解释&#xff0c;详情请看…

CSS 水平垂直居中的方式

目录 在不知道子元素宽高的情况下&#xff0c;水平垂直居中的六种方式&#xff1a; 1、弹性盒子布局方式来实现&#xff08;flex&#xff09;。 2、绝对定位 transform 3、table标签 4、display&#xff1a;table-cell 5、display: grid 6、writing-mode 属性 在不知道子…

CSS实现DIV的水平与垂直居中

使用CSS样式实现DIV的水平与垂直居中。 1、使用<div>标签的 align 属性实现水平居中 HTML中的 <div> 标签的 align 属性用于规定 div 元素中的内容的水平对齐方式。所有浏览器都支持 align 属性。 语法&#xff1a; <div align"value"> 属性值…

Java了解消息摘要算法

Java了解消息摘要算法 什么是消息摘要算法现行的消息摘要算法MD系列发展历史MD2算法MD4算法MD5算法 后续 SHA系列发展历史SHA-0 与 SHA-1SHA-2 后续 国密算法SM3发布后续 HMAC系列发展历史背景发展 后续 本文小结疑问 后续 什么是消息摘要算法 消息摘要算法的主要特征是加密过…

散列算法(也叫:摘要算法)

散列算法(也叫&#xff1a;摘要算法)&#xff1a; 特点&#xff1a;① 无论输入的消息有多长&#xff0c;计算出来的消息摘要的长度总是固定的。② 消息摘要看起来是“随机的”。这些比特看上去是胡乱的杂凑在一起的。③ 一般地&#xff0c;只要输入的消息不同&#xff0c;对其…

信息摘要算法之一:MD5算法分析及实现

MD5即Message-DigestAlgorithm 5&#xff08;信息-摘要算法5&#xff09;&#xff0c;用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一&#xff08;又译摘要算法、哈希算法&#xff09;&#xff0c;主流编程语言普遍已有MD5实现。 1、MD5算法简介 MD5在90年代初由…