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);

}

}

结果展示:

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

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

使用下面两个图片分别代表开关按钮的 选中(开) 和 未选中(关) 状态,分别命名为: toggle_on.png,toggle_off.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);

}

}

java 开关按钮_Java Swing JToggleButton开关按钮的实现相关推荐

  1. java单选按钮_Java Swing JRadioButton:单选按钮组件

    单选按钮与复选框类似都有两种状态,不同的是一组单选按钮中只能有一个处于选中状态.Swing 中 JRadioButton 类实现单选按钮,它与 JCheckBox 一样都是从 JToggleButto ...

  2. swing java管理系统_Java swing实现酒店管理系统

    packagecom.sunshine.setup;import javax.swing.*;import javax.swing.border.*;import javax.swing.table. ...

  3. 合金弹头java视频_Java swing实现的仿植物大战僵尸版合金弹头游戏源码附带视频指导教程...

    <p> <span style="font-family:微软雅黑;font-size:16px;color:#555555;line-height:2;"> ...

  4. java滑块_Java Swing JSlider滑块的实现示例

    1. 概述 JSlider,滑块. 以图形方式在有界区间内通过移动滑块来选择值的组件. 滑块可以显示主刻度标记以及主刻度之间的次刻度标记.刻度标记之间的值的个数由 setMajorTickSpacin ...

  5. 游戏合金弹头的java源代码_java swing实现合金弹头小游戏源码附带视频指导运行教程...

    <p> <span style="color:#555555;font-family:"font-size:16px;background-color:#FFFF ...

  6. java钢琴_Java swing实现支持录音等功能的钢琴程序

    今天给大家介绍一下Java实现钢琴的小程序,程序虽小,功能挺多,支持循环播放,录音等功能,首先简单介绍下源码结构: 先看看钢琴界面实现,添加相应滴监听事件: /* * @(#)MidiSynth.ja ...

  7. java滚动条_java Swing界面优化JscrollPane滚动条教程

    滚动条,一个很小且不显眼的东西,却左右着一个界面的整体美感. Java中的原生态滚动条,实在不敢恭维,就拿我们之前优化过的界面来说,如果加上原生态的滚动条,美观度立马就反弹了. 优化思路: 1.继承B ...

  8. java皮肤_Java swing皮肤(look and feel)大全

    ########## 优选 ########## Weblaf:非常赞的套件,界面现代.简约.依赖包较少.有开源也有商业协议,个人最喜欢的皮肤. https://github.com/mgarin/w ...

  9. java滚动条_java swing:文本框添加滚动条

    有几点要注意: 1.默认的滚动条,仅在输入的文本超过文本框时才会显示..没有超过文本框是不会显示的: 2.设置矩形大小,是在滚动条上设置,而不是在文本框上设置: 示例代码如下: public clas ...

最新文章

  1. 技术分享丨关于 Hadoop 的那些事儿
  2. ultraedit26 运行的是试用模式_如何并行运行你的自动化测试?
  3. 三探云原生全景图,这次聊聊运行时层
  4. 在shell中全局变量与局部变量的区别及其举例
  5. 【力扣】NO.1.两数之和
  6. 【3】Keras.applications包,一堆可以复用的深度学习模型库
  7. BIDS 怪异现象(转载)
  8. 拓展软文写作主题角度
  9. 《一个广告人的自白》读书笔记
  10. 拒绝“重复造轮子”,百度EasyDL让你玩转AI定制开发
  11. php中理解print EOT分界符和echo EOT的用法区别
  12. Nginx动静分离配置
  13. 双基因突变患者_一例 Kallmann 综合征患者双基因突变分析
  14. 人脸识别RK主板方案
  15. PHP 生成随机昵称或用户名
  16. Spring Cloud Gateway 不小心换了个 Web 容器就不能用了,我 TM 人傻了
  17. 码农三十岁之后过上了怎么的生活?
  18. 饺子(节操)播放器集成问题
  19. 修道士和野人java_修道士和野人问题
  20. 数字图像处理实验二 图像变换

热门文章

  1. 基于jQuery日历插件制作日历
  2. linux系统中-E,-S,-c的区别和作用(怎么讲代码转化为机器识别的语言)
  3. Python中的列表和元组
  4. iOS interface适配
  5. Android开发笔记(二)
  6. java窗体与Flash交互
  7. 用户界面的一些好的设计理念
  8. Flutter SliverAnimatedOpacity 透明渐变动画效果
  9. gtone eclipse plugin install
  10. [转载] 大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理