杰瑞科技汇

checkbox java选中

Java Swing (Swing 是最经典的 Java GUI 库)

在 Swing 中,复选框对应 JCheckBox 类。

checkbox java选中-图1
(图片来源网络,侵删)

核心方法

  • isSelected(): 获取复选框的选中状态,如果被选中,返回 true;否则返回 false
  • setSelected(boolean): 设置复选框的选中状态,参数为 true 则选中,为 false 则取消选中。

示例 1:创建一个简单的复选框并获取其状态

这个例子创建一个窗口,里面有一个复选框和一个按钮,点击按钮时,程序会打印出复选框当前是否被选中。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SwingCheckboxExample {
    public static void main(String[] args) {
        // 创建一个新窗口
        JFrame frame = new JFrame("Swing 复选框示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 150);
        frame.setLayout(new FlowLayout()); // 使用流式布局
        // 1. 创建一个 JCheckBox
        JCheckBox myCheckbox = new JCheckBox("同意用户协议");
        // 2. 创建一个按钮,用于检查状态
        JButton checkButton = new JButton("检查状态");
        // 3. 为按钮添加点击事件监听器
        checkButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 使用 isSelected() 方法获取复选框的选中状态
                if (myCheckbox.isSelected()) {
                    JOptionPane.showMessageDialog(frame, "复选框已被选中!");
                } else {
                    JOptionPane.showMessageDialog(frame, "复选框未被选中。");
                }
            }
        });
        // 4. 将组件添加到窗口中
        frame.add(myCheckbox);
        frame.add(checkButton);
        // 显示窗口
        frame.setVisible(true);
    }
}

示例 2:动态设置复选框状态

这个例子展示如何通过代码来选中或取消选中复选框。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SwingCheckboxSetExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("设置复选框状态");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setLayout(new FlowLayout());
        JCheckbox statusCheckbox = new JCheckbox("当前状态");
        JButton selectButton = new JButton("选中");
        JButton deselectButton = new JButton("取消选中");
        // 选中按钮的事件
        selectButton.addActionListener(e -> statusCheckbox.setSelected(true));
        // 取消选中按钮的事件
        deselectButton.addActionListener(e -> statusCheckbox.setSelected(false));
        frame.add(statusCheckbox);
        frame.add(selectButton);
        frame.add(deselectButton);
        frame.setVisible(true);
    }
}

JavaFX (JavaFX 是现代的 Java GUI 库,推荐用于新项目)

在 JavaFX 中,复选框对应 CheckBox 类。

核心属性

  • selectedProperty(): 这是一个 BooleanProperty,用于绑定或监听复选框的选中状态。
  • isSelected(): 获取选中状态的便捷方法,返回 boolean
  • setSelected(boolean): 设置选中状态的便捷方法。

示例 1:创建一个简单的复选框并获取其状态

这个例子创建一个场景,里面有一个复选框和一个按钮,点击按钮时,会弹出一个对话框显示复选框的状态。

checkbox java选中-图2
(图片来源网络,侵删)
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
public class JavaFXCheckboxExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        // 1. 创建一个 CheckBox
        CheckBox myCheckbox = new CheckBox("同意用户协议");
        // 2. 创建一个按钮
        Button checkButton = new Button("检查状态");
        // 3. 为按钮添加事件处理器
        checkButton.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                // 使用 isSelected() 方法获取状态
                if (myCheckbox.isSelected()) {
                    Alert alert = new Alert(Alert.AlertType.INFORMATION);
                    alert.setTitle("状态信息");
                    alert.setHeaderText(null);
                    alert.setContentText("复选框已被选中!");
                    alert.showAndWait();
                } else {
                    Alert alert = new Alert(Alert.AlertType.WARNING);
                    alert.setTitle("状态信息");
                    alert.setHeaderText(null);
                    alert.setContentText("复选框未被选中。");
                    alert.showAndWait();
                }
            }
        });
        // 4. 创建一个布局并将组件添加进去
        VBox root = new VBox(10); // 10是间距
        root.getChildren().addAll(myCheckbox, checkButton);
        // 5. 创建场景并设置到舞台
        Scene scene = new Scene(root, 300, 150);
        primaryStage.setTitle("JavaFX 复选框示例");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

示例 2:使用属性绑定(JavaFX 的强大功能)

JavaFX 的一个核心特性是属性绑定,你可以将复选框的选中状态与另一个控件(比如按钮的禁用状态)直接绑定。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaFXBindingExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        CheckBox agreeCheckbox = new CheckBox("我已阅读并同意条款");
        Button submitButton = new Button("提交");
        // --- 核心代码:绑定 ---
        // 将提交按钮的禁用状态与复选框的选中状态绑定
        // 当复选框未被选中时,按钮自动被禁用
        submitButton.disableProperty().bind(agreeCheckbox.selectedProperty().not());
        VBox root = new VBox(10, agreeCheckbox, submitButton);
        root.setStyle("-fx-padding: 20;");
        Scene scene = new Scene(root, 300, 150);
        primaryStage.setTitle("JavaFX 属性绑定示例");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

总结与对比

特性 Java Swing JavaFX
核心类 JCheckBox CheckBox
获取状态 myCheckbox.isSelected() myCheckbox.isSelected()
设置状态 myCheckbox.setSelected(true) myCheckbox.setSelected(true)
事件监听 addActionListener setOnAction
高级特性 需要手动实现联动逻辑 属性绑定,可以轻松实现控件间的联动,非常强大
推荐度 旧项目维护,学习基础GUI 新项目首选,更现代、功能更强大

希望这些详细的例子能帮助你理解如何在 Java 中处理复选框的选中状态!

checkbox java选中-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇