首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java AWT Checkbox 核取方塊完全指南:狀態管理、事件處理與累積顯示技巧

     編輯:Java 相關知識

Checkbox 核心特性

  • 獨立開關:小方框 + 標籤文字
  • 狀態:選中 (顯示 X/勾) / 未選中 (空白)
  • 建構子:new Checkbox(label) 或 new Checkbox(label, state)
  • 狀態存取:getState() / setState(boolean)
  • 標籤存取:getLabel() / setLabel(String)
  • 點擊觸發 action() (Java 1.0) / ItemListener (Java 1.1+)

完整範例:CheckBox1 — 累積顯示狀態變更

//: CheckBox1.java
import java.awt.*;
import java.applet.*;

public class CheckBox1 extends Applet {
    TextArea t = new TextArea(6, 20);
    Checkbox cb1 = new Checkbox("Check Box 1");
    Checkbox cb2 = new Checkbox("Check Box 2");
    Checkbox cb3 = new Checkbox("Check Box 3");

    public void init() {
        add(t); add(cb1); add(cb2); add(cb3);
    }

    public boolean action(Event evt, Object arg) {
        if (evt.target.equals(cb1)) trace("1", cb1.getState());
        else if (evt.target.equals(cb2)) trace("2", cb2.getState());
        else if (evt.target.equals(cb3)) trace("3", cb3.getState());
        else return super.action(evt, arg);
        return true;
    }

    void trace(String id, boolean state) {
        if (state) t.appendText("Box " + id + " Set\n");
        else t.appendText("Box " + id + " Cleared\n");
    }
} ///:~

關鍵技巧:TextArea 累積日誌

  • appendText() (Java 1.0) / append() (1.1+) 在現有內容後追加,不覆蓋
  • 適合事件追蹤、除錯日誌、即時訊息顯示
  • 大量日誌建議限制行數或使用 JTextArea + DefaultCaret 自動捲動

現代化對應

技術核心類別增強功能
SwingJCheckBox圖示/文字相對位置、邊距、對齊、Mnemonics (Alt+鍵)、Action 共用邏輯、ButtonModel 狀態模型
JavaFXCheckBox三態支援 (INDETERMINATE)、CSS 樣式、屬性綁定 (selectedProperty())、動畫、allowIndeterminate
Web<input type="checkbox">原生語義、indeterminate 屬性 (JS 設定)、無障礙完整支援

最佳實踐

  1. 標籤文字置於 Checkbox 右側 (預設),符合平台慣例 (Windows/Linux/Mac 皆同)。
  2. 相關選項群組時,使用 TitledBorder (Swing) / TitledPane (JavaFX) / <fieldset> (Web) 視覺分組。
  3. 「全選/反選」功能:維護子項清單,統一設定狀態,父項狀態衍生自子項 (全選→勾、部分選→中性、無選→空)。
  4. 狀態持久化:Preferences API / Properties / JSON 儲存使用者偏好。

總結

Checkbox 是「獨立布林開關」的最小單元:API 極簡、行為明確。TextArea.appendText() 累積顯示是事件追蹤的經典技巧。現代 JCheckBox/CheckBox 增加三態、綁定、樣式、無障礙等企業級功能,但核心「獲取/設定布林狀態」不變。理解基礎機制,輕鬆駕馭進階框架。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved