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();
}
}
上面的代碼生成以下結果。