JavaFX核取方塊


核取方塊允許使用者進行多項選擇。例如,當訂購披薩時,可以新增多個調味料。無線電鈕或切換按鈕用於單選或無選擇。

建立核取方塊

我們可以使用CheckBox中的建構函式來建立CheckBox的物件。

建立不帶標題的核取方塊,如下程式碼所示 -

CheckBox checkBox = new CheckBox();

要建立帶有字串標題的核取方塊,如下程式碼所示 -

CheckBox checkBox = new CheckBox("Second");

建立核取方塊後,我們可以更改其文字並將其選中。

checkBox.setText("First");
checkBox.setSelected(true);

核取方塊狀態

可以使用CheckBox來表示三個狀態:

  • Yes
  • No
  • Not Applicable(不適用)

「不適用」狀態是呼叫不確定。 如果核取方塊不在不確定中,可以選擇或不選擇。 選擇表示,未選擇表示

我們可以通過設定CheckBox物件的allowIndeterminate屬性來選擇支援Indeterminate

如果設定為true,則核取方塊應該迴圈選擇所有三個狀態:選中取消選擇未定義

如果設定為false,核取方塊將迴圈選擇和取消選擇的狀態。

範例

以下程式碼顯示了如何向CheckBox新增工具提示。

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
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.control.Tooltip;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) {
        Scene scene = new Scene(new Group());
        stage.setTitle("Tooltip Sample");
        stage.setWidth(300);
        stage.setHeight(150);
        final CheckBox cb = new CheckBox("checkBox");
        final Tooltip tooltip = new Tooltip("$ tooltip");
        tooltip.setFont(new Font("Arial", 16));
        cb.setTooltip(tooltip);
        cb.selectedProperty().addListener(new ChangeListener<Boolean>() {
           public void changed(ObservableValue<? extends Boolean> ov,
             Boolean old_val, Boolean new_val) {
             System.out.println(cb.isSelected());
          }
        });

        ((Group) scene.getRoot()).getChildren().add(cb);

        stage.setScene(scene);
        stage.show();
    }
}

上面的程式碼生成以下結果。