JavaSwingJToggleButton開關(guān)按鈕的實(shí)現(xiàn)

1. 概述

成都創(chuàng)新互聯(lián)公司專注于汕尾網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供汕尾營(yíng)銷型網(wǎng)站建設(shè),汕尾網(wǎng)站制作、汕尾網(wǎng)頁(yè)設(shè)計(jì)、汕尾網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造汕尾網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供汕尾網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

官方JavaDocsApi: javax.swing.JToggleButton

JToggleButton,開關(guān)按鈕。JToggleButton 是 JRadioButton, JCheckBox 的父類,主要實(shí)現(xiàn)一個(gè)按鈕的兩種狀態(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))、被選中(開)、不可用 時(shí)顯示的圖片
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("測(cè)試窗口");
  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é)果展示:

Java Swing JToggleButton開關(guān)按鈕的實(shí)現(xiàn)

運(yùn)行代碼,點(diǎn)擊開關(guān)按鈕,查看控制臺(tái)輸出。

3. 代碼實(shí)例: 自定義圖片開關(guān)

使用下面兩個(gè)圖片分別代表開關(guān)按鈕的 選中(開) 和 未選中(關(guān)) 狀態(tài),分別命名為: toggle_on.png,toggle_off.png:

Java Swing JToggleButton開關(guān)按鈕的實(shí)現(xià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("測(cè)試窗口");
    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)) 時(shí)顯示的圖片
    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);
  }

}

Java Swing JToggleButton開關(guān)按鈕的實(shí)現(xiàn)

運(yùn)行代碼,點(diǎn)擊開關(guān)按鈕,查看控制臺(tái)輸出。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

文章標(biāo)題:JavaSwingJToggleButton開關(guān)按鈕的實(shí)現(xiàn)
網(wǎng)頁(yè)地址:http://bm7419.com/article6/jcsjig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序定制網(wǎng)站、企業(yè)建站動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司