复选框是选择控件的一种,其形状为方形,带有刻度线,其中具有选中或未选中以及三态/不确定(可选)的三种状态。与单选按钮不同,您不能使用“切换按钮”组合复选框。
一棵树提供了层次结构的视图,每棵树都包含一个根(最高对象)并且包含子级。您可以通过实例化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); } }
输出结果