JavaFX:在TreeView中显示存储的CheckBoxTreeItem选择
我使用树状视图选择稍后将显示在报告上的部分。为了提高用户友好性,我决定保存选择,这样用户下次就不必再次选择相同的部分。我已经保存了选择,但是当视图初始化时,treeView不能正确显示选择(img 1)。我正在寻找一种显示树状视图的方式,如img 2中所示JavaFX:在TreeView中显示存储的CheckBoxTreeItem选择,javafx,checkbox,treeview,Javafx,Checkbox,Treeview,我使用树状视图选择稍后将显示在报告上的部分。为了提高用户友好性,我决定保存选择,这样用户下次就不必再次选择相同的部分。我已经保存了选择,但是当视图初始化时,treeView不能正确显示选择(img 1)。我正在寻找一种显示树状视图的方式,如img 2中所示 public class Main extends Application { public static void main(String[] args) { launch(args); } @Ov
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
CheckBoxTreeItem<String> rootItem = new CheckBoxTreeItem<>("Root");
CheckBoxTreeItem<String> aItem = new CheckBoxTreeItem<>("A");
CheckBoxTreeItem<String> a1Item = new CheckBoxTreeItem<>("A_1");
CheckBoxTreeItem<String> a2Item = new CheckBoxTreeItem<>("A_2");
CheckBoxTreeItem<String> bItem = new CheckBoxTreeItem<>("B");
CheckBoxTreeItem<String> cItem = new CheckBoxTreeItem<>("C");
a1Item.setSelected(true);
aItem.setExpanded(true);
aItem.getChildren().addAll(a1Item, a2Item);
rootItem.getChildren().addAll(aItem, bItem, cItem);
rootItem.setExpanded(true);
TreeView treeView = new TreeView(rootItem);
treeView.setCellFactory(CheckBoxTreeCell.<String>forTreeView());
Scene scene = new Scene(treeView, 400, 400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
}
}
public类主扩展应用程序{
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
公共无效开始(阶段primaryStage){
CheckBoxTreeItem rootItem=新的CheckBoxTreeItem(“根”);
CheckBoxTreeItem aItem=新的CheckBoxTreeItem(“A”);
CheckBoxTreeItem a1Item=新的CheckBoxTreeItem(“A_1”);
CheckBoxTreeItem a2Item=新的CheckBoxTreeItem(“A_2”);
CheckBoxTreeItem bItem=新的CheckBoxTreeItem(“B”);
CheckBoxTreeItem cItem=新的CheckBoxTreeItem(“C”);
a1项。选择的设置(正确);
aItem.setExpanded(真);
aItem.getChildren().addAll(a1项,a2项);
getChildren().addAll(aItem、bItem、cItem);
setExpanded(true);
TreeView TreeView=新的TreeView(根项目);
setCellFactory(CheckBoxTreeCell.forTreeView());
场景=新场景(treeView,400400);
scene.getStylesheets().add(getClass().getResource(“application.css”).toExternalForm());
初级阶段。场景(场景);
primaryStage.show();
}
}
如果先将CheckBoxTreeItems添加到其各自的父项,则在更改值之前,值更改将触发工作,应用程序将按预期工作
aItem.getChildren().addAll(a1Item, a2Item);
rootItem.getChildren().addAll(aItem, bItem, cItem);
a1Item.setSelected(true);
aItem.setExpanded(true);
我知道这一定很简单,但我不知道那是什么。谢谢:)