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

}

}

结果展示:

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

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 Swing JToggleButton开关按钮的实现 的全部内容, 来源链接: utcz.com/z/354561.html

回到顶部