JavaFX 示例:为 CheckBox 设置动作监听器
javafxobject oriented programmingprogramming更新于 2025/6/26 7:22:17
复选框是一种选择控件,形状为方形,内部带有勾选标记。它有三种状态:选中、未选中和三态/不确定(可选)。
在 JavaFX 中,复选框由 javafx.scene.control.CheckBox 类表示。该类有三个布尔属性,分别是 allowIndeterminate、indeterminate 和 selected。
为 CheckBox 设置动作
CheckBox 类的 selected 属性指定当前复选框是否被选中。选中时,其值为 true;未选中时,其值为 false。
selectedProperty() 方法返回一个布尔属性,指示当前复选框是否被选中。如果您想在复选框被选中时执行某些操作。您可以使用 − 为该属性添加一个监听器。
checkBox2.selectedProperty().addListener( //. . . . . );
示例
以下 JavaFX 示例创建了三个复选框,并在选中每个复选框时执行一些操作。
import javafx.application.Application; import javafx.beans.value.ObservableValue; import javafx.geometry.Insets; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; public class CheckBoxAction extends Application { public void start(Stage stage) { //创建复选框 CheckBox checkBox1 = new CheckBox("English"); CheckBox checkBox2 = new CheckBox("Hindi"); CheckBox checkBox3 = new CheckBox("Telugu"); Label label = new Label("Select a language:"); Font font = Font.font("verdana", 12); label.setFont(font); Text text1 = new Text(250.0, 45.0, ""); text1.setFont(font); Text text2 = new Text(250.0, 75.0, ""); text1.setFont(font); Text text3 = new Text(250.0, 105.0, ""); text1.setFont(font); //设置复选框的操作 checkBox1.selectedProperty().addListener( (ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) -> { text1.setText("Welcome to Tutorilaspoint"); }); checkBox2.selectedProperty().addListener( ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) -> { text2.setText("टुटोरियल्स पॉइन्ट को आप का स्वागत है"); }); checkBox3.selectedProperty().addListener( (ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) -> { text3.setText("ట్యూ టోరియల్స్ పాయింట్ కి స్వా గతిం"); }); //将切换按钮添加到窗格 VBox vBox = new VBox(5); vBox.setPadding(new Insets(5, 5, 5, 50)); vBox.getChildren().addAll(label, checkBox1, checkBox2, checkBox3 ); Group root = new Group(); root.getChildren().addAll(vBox, text1, text2, text3); //设置舞台 Scene scene = new Scene(root, 595, 150, Color.BEIGE); stage.setTitle("Check Box Example"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }