JavaFX 中的 CheckBoxTreeItem 是什么?请举例说明。

javafxobject oriented programmingprogramming更新于 2026/1/7 19:56:17

复选框

复选框是一种选择控件,形状为方形,中间带有勾选标记。它有三种状态:选中、未选中和三态/不确定(可选)。与单选按钮不同,您不能使用切换按钮组合复选框。

树形视图

树形视图提供层次结构的视图,每棵树包含一个根(最高对象)及其子对象。您可以通过实例化 javafx.scene.control.TreeView 类 来创建树形视图。

CheckBoxTreeItem 是由复选框组成的树形视图。您可以通过实例化 javafx.scene.control.CheckBoxTreeItem 类 来创建复选框树项。

示例

以下示例演示了如何创建 CheckBoxTreeItem。

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.CheckBoxTreeItem;
import javafx.scene.control.Label;
import javafx.scene.control.TreeView;
import javafx.scene.control.cell.CheckBoxTreeCell;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class CheckBoxTreeExample extends Application {
   public void start(Stage stage) {
      //创建复选框
      CheckBoxTreeItem<String> checkBox1 = new CheckBoxTreeItem<>("English");
      CheckBoxTreeItem<String> checkBox2 = new CheckBoxTreeItem<>("Hindi");
      CheckBoxTreeItem<String> checkBox3 = new CheckBoxTreeItem<>("Telugu");
      CheckBoxTreeItem<String> checkBox4 = new CheckBoxTreeItem<>("Tamil");
      //创建标签
      Label label = new Label("选择已知语言:");
      Font font = Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 12);
      label.setFont(font);
      //创建父复选框项
      CheckBoxTreeItem<String> languages = new CheckBoxTreeItem<>("Languages");
      languages.setExpanded(true);
      //将所有子复选框项添加到父级
      languages.getChildren().addAll(checkBox1, checkBox2, checkBox3, checkBox4);
      //创建树形视图
      TreeView<String> treeView = new TreeView<>();
      //将父复选框项添加到树形视图
      treeView.setRoot(languages);
      //设置单元格工厂
      treeView.setCellFactory(CheckBoxTreeCell.<String>forTreeView());
      //设置树视图的高度
      treeView.setMaxHeight(140);
      //设置布局
      VBox vBox = new VBox(5);
      vBox.setPadding(new Insets(25, 5, 5, 50));
      vBox.getChildren().addAll(label, treeView);
      //设置舞台
      Scene scene = new Scene(new Group(vBox), 595, 200, Color.BEIGE);
      stage.setTitle("Check Tree Item");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

输出


相关文章