Java Swing JToggleButton開關(guān)按鈕的實(shí)現(xiàn)
1. 概述
官方JavaDocsApi: javax.swing.JToggleButton
JToggleButton,開關(guān)按鈕。JToggleButton 是 JRadioButton, JCheckBox 的父類,主要實(shí)現(xiàn)一個按鈕的兩種狀態(tài)(選中 和 未選中)來實(shí)現(xiàn)開關(guān)切換的效果。
JToggleButton 常用構(gòu)造方法:
// 無文本,默認(rèn)未選中 JToggleButton() // 有文本,默認(rèn)未選中 JToggleButton(String text) // 有文本,并指定是否選中 JToggleButton(String text, boolean selected)
JToggleButton 常用方法:
// 設(shè)置開關(guān)按鈕的 文本、字體 和 字體顏色 void setText(String text) void setFont(Font font) void setForeground(Color fg) /* 以下方法定義在 javax.swing.AbstractButton 基類中 */ // 設(shè)置開關(guān)按鈕是否選中狀態(tài) void setSelected(boolean b) // 判斷開關(guān)按鈕是否選中 boolean isSelected() // 設(shè)置開關(guān)按鈕是否可用 void setEnabled(boolean enable) // 設(shè)置開關(guān)按鈕在 默認(rèn)(關(guān))、被選中(開)、不可用 時顯示的圖片 void setIcon(Icon defaultIcon) void setPressedIcon(Icon pressedIcon) void setDisabledIcon(Icon disabledIcon) // 設(shè)置圖片和文本之間的間距 void setIconTextGap(int iconTextGap)
JToggleButton 常用監(jiān)聽器:
// 添加狀態(tài)改變監(jiān)聽器 void addChangeListener(ChangeListener l)
2. 代碼實(shí)例: 默認(rèn)的開關(guān)按鈕
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();
// 創(chuàng)建開關(guān)按鈕
JToggleButton toggleBtn = new JToggleButton("開關(guān)按鈕");
// 添加 toggleBtn 的狀態(tài)被改變的監(jiān)聽
toggleBtn.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// 獲取事件源(即開關(guān)按鈕本身)
JToggleButton toggleBtn = (JToggleButton) e.getSource();
System.out.println(toggleBtn.getText() + " 是否選中: " + toggleBtn.isSelected());
}
});
panel.add(toggleBtn);
jf.setContentPane(panel);
jf.setVisible(true);
}
}
結(jié)果展示:

運(yùn)行代碼,點(diǎn)擊開關(guān)按鈕,查看控制臺輸出。
3. 代碼實(shí)例: 自定義圖片開關(guān)
使用下面兩個圖片分別代表開關(guān)按鈕的 選中(開) 和 未選中(關(guān)) 狀態(tài),分別命名為: 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();
// 創(chuàng)建開關(guān)按鈕
JToggleButton toggleBtn = new JToggleButton();
// 首先設(shè)置不繪制按鈕邊框
toggleBtn.setBorderPainted(false);
// 設(shè)置 選中(開) 和 未選中(關(guān)) 時顯示的圖片
toggleBtn.setSelectedIcon(new ImageIcon("toggle_on.png"));
toggleBtn.setIcon(new ImageIcon("toggle_off.png"));
// 添加 toggleBtn 的狀態(tài)被改變的監(jiān)聽
toggleBtn.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// 獲取事件源(即開關(guān)按鈕本身)
JToggleButton toggleBtn = (JToggleButton) e.getSource();
System.out.println(toggleBtn.getText() + " 是否選中: " + toggleBtn.isSelected());
}
});
panel.add(toggleBtn);
jf.setContentPane(panel);
jf.setVisible(true);
}
}

運(yùn)行代碼,點(diǎn)擊開關(guān)按鈕,查看控制臺輸出。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談java web中常用對象對應(yīng)的實(shí)例化接口
下面小編就為大家?guī)硪黄獪\談java web中常用對象對應(yīng)的實(shí)例化接口。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
解決SpringBoot返回結(jié)果如果為null或空值不顯示處理問題
這篇文章主要介紹了解決SpringBoot返回結(jié)果如果為null或空值不顯示處理問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot集成easy-rules規(guī)則引擎流程詳解
這篇文章主要介紹了SpringBoot集成easy-rules規(guī)則引擎流程,合理的使用規(guī)則引擎可以極大的減少代碼復(fù)雜度,提升代碼可維護(hù)性。業(yè)界知名的開源規(guī)則引擎有Drools,功能豐富,但也比較龐大2023-03-03
Springboot啟用多個監(jiān)聽端口代碼實(shí)例
這篇文章主要介紹了Springboot啟用多個監(jiān)聽端口代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
微信java開發(fā)之實(shí)現(xiàn)微信主動推送消息
這篇文章主要介紹了微信開發(fā)過程中的使用java實(shí)現(xiàn)微信主動推送消息示例,需要的朋友可以參考下2014-03-03

