复选框允许用户进行多项选择。例如,当订购披萨时,可以添加多个调味料。单选按钮或切换按钮用于单选或无选择。

创建复选框

我们可以使用CheckBox中的构造函数来创建CheckBox的对象。
创建不带标题的复选框,如下代码所示 -

  1. CheckBox checkBox = new CheckBox();

要创建带有字符串标题的复选框,如下代码所示 -

  1. CheckBox checkBox = new CheckBox("Second");

创建复选框后,我们可以更改其文本并将其选中。

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

复选框状态

可以使用CheckBox来表示三个状态:

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

“不适用”状态是调用不确定。 如果复选框不在不确定中,可以选择或不选择。 选择表示,未选择表示
我们可以通过设置CheckBox对象的allowIndeterminate属性来选择支持Indeterminate。
如果设置为true,则复选框应该循环选择所有三个状态:选中,取消选择和未定义。
如果设置为false,复选框将循环选择和取消选择的状态。

示例

以下代码显示了如何向CheckBox添加工具提示。

  1. import javafx.application.Application;
  2. import javafx.beans.value.ChangeListener;
  3. import javafx.beans.value.ObservableValue;
  4. import javafx.event.EventHandler;
  5. import javafx.geometry.Insets;
  6. import javafx.scene.Group;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.*;
  9. import javafx.scene.effect.DropShadow;
  10. import javafx.scene.image.Image;
  11. import javafx.scene.image.ImageView;
  12. import javafx.scene.input.MouseEvent;
  13. import javafx.scene.layout.HBox;
  14. import javafx.scene.layout.StackPane;
  15. import javafx.scene.layout.VBox;
  16. import javafx.scene.text.Font;
  17. import javafx.stage.Stage;
  18. public class Main extends Application {
  19. public static void main(String[] args) {
  20. Application.launch(args);
  21. }
  22. @Override
  23. public void start(Stage stage) {
  24. Group root = new Group();
  25. Scene scene = new Scene(root);
  26. stage.setTitle("Tooltip Sample");
  27. stage.setWidth(300);
  28. stage.setHeight(150);
  29. final CheckBox cb = new CheckBox("checkBox");
  30. final Tooltip tooltip = new Tooltip("$ tooltip");
  31. tooltip.setFont(new Font("Arial", 16));
  32. cb.setTooltip(tooltip);
  33. cb.selectedProperty().addListener(new ChangeListener<Boolean>() {
  34. public void changed(ObservableValue<? extends Boolean> ov,
  35. Boolean old_val, Boolean new_val) {
  36. System.out.println(cb.isSelected());
  37. }
  38. });
  39. root.getChildren().add(cb);
  40. stage.setScene(scene);
  41. stage.show();
  42. }
  43. }

image.png