java开关按钮_Java Swing JToggleButton开关按钮的实现

本文介绍了如何使用Java Swing的JToggleButton创建开关按钮,包括基本构造方法、常用方法、监听器的添加,以及通过自定义图片实现开关效果的示例代码。
部署运行你感兴趣的模型镜像

1. 概述

官方JavaDocsApi: javax.swing.JToggleButton

JToggleButton,开关按钮。JToggleButton 是 JRadioButton, JCheckBox 的父类,主要实现一个按钮的两种状态(选中 和 未选中)来实现开关切换的效果。

JToggleButton 常用构造方法:

// 无文本,默认未选中

JToggleButton()

// 有文本,默认未选中

JToggleButton(String text)

// 有文本,并指定是否选中

JToggleButton(String text, boolean selected)

JToggleButton 常用方法:

// 设置开关按钮的 文本、字体 和 字体颜色

void setText(String text)

void setFont(Font font)

void setForeground(Color fg)

/* 以下方法定义在 javax.swing.AbstractButton 基类中 */

// 设置开关按钮是否选中状态

void setSelected(boolean b)

// 判断开关按钮是否选中

boolean isSelected()

// 设置开关按钮是否可用

void setEnabled(boolean enable)

// 设置开关按钮在 默认(关)、被选中(开)、不可用 时显示的图片

void setIcon(Icon defaultIcon)

void setPressedIcon(Icon pressedIcon)

void setDisabledIcon(Icon disabledIcon)

// 设置图片和文本之间的间距

void setIconTextGap(int iconTextGap)

JToggleButton 常用监听器:

// 添加状态改变监听器

void addChangeListener(ChangeListener l)

2. 代码实例: 默认的开关按钮

package com.xiets.swing;

import javax.swing.*;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

public class Main {

public static void main(String[] args) {

JFrame jf = new JFrame("测试窗口");

jf.setSize(250, 250);

jf.setLocationRelativeTo(null);

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

// 创建开关按钮

JToggleButton toggleBtn = new JToggleButton("开关按钮");

// 添加 toggleBtn 的状态被改变的监听

toggleBtn.addChangeListener(new ChangeListener() {

@Override

public void stateChanged(ChangeEvent e) {

// 获取事件源(即开关按钮本身)

JToggleButton toggleBtn = (JToggleButton) e.getSource();

System.out.println(toggleBtn.getText() + " 是否选中: " + toggleBtn.isSelected());

}

});

panel.add(toggleBtn);

jf.setContentPane(panel);

jf.setVisible(true);

}

}

结果展示:

4421fc53ec2bfcd0e63daa876bee951d.gif

运行代码,点击开关按钮,查看控制台输出。

3. 代码实例: 自定义图片开关

使用下面两个图片分别代表开关按钮的 选中(开) 和 未选中(关) 状态,分别命名为: toggle_on.png,toggle_off.png:

582d4a72825631616e70fe8eb960a192.png

package com.xiets.swing;

import javax.swing.*;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

public class Main {

public static void main(String[] args) {

JFrame jf = new JFrame("测试窗口");

jf.setSize(250, 250);

jf.setLocationRelativeTo(null);

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

// 创建开关按钮

JToggleButton toggleBtn = new JToggleButton();

// 首先设置不绘制按钮边框

toggleBtn.setBorderPainted(false);

// 设置 选中(开) 和 未选中(关) 时显示的图片

toggleBtn.setSelectedIcon(new ImageIcon("toggle_on.png"));

toggleBtn.setIcon(new ImageIcon("toggle_off.png"));

// 添加 toggleBtn 的状态被改变的监听

toggleBtn.addChangeListener(new ChangeListener() {

@Override

public void stateChanged(ChangeEvent e) {

// 获取事件源(即开关按钮本身)

JToggleButton toggleBtn = (JToggleButton) e.getSource();

System.out.println(toggleBtn.getText() + " 是否选中: " + toggleBtn.isSelected());

}

});

panel.add(toggleBtn);

jf.setContentPane(panel);

jf.setVisible(true);

}

}

a957d884a72645537227c14afd5728e8.gif

运行代码,点击开关按钮,查看控制台输出。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值