首页 文章

JavaFX - 按钮编辑树视图节点文本

提问于
浏览
0

我有一个带有树视图的表单,我想通过按下按钮来更改所选项目的文本 . 我无法通过按下按钮找到如何实现这一点 . 我通过双击单元格找到了如何做到这一点,但我无法通过按钮理解 . 也许有人知道如何实现这个或抛弃链接 .

我将非常感激 .

1 回答

  • 3

    只需使用选择模型来获取所选的 TreeItem 并更改它的 value 属性 .

    示例

    @Override
    public void start(Stage primaryStage) throws IOException {
        TreeView<String> treeView = new TreeView<>();
    
        // create data
        TreeItem<String> root = new TreeItem<>("root");
    
        TreeItem<String> child1 = new TreeItem<>("child1");
        TreeItem<String> child2 = new TreeItem<>("child2");
        root.getChildren().addAll(child1, child2);
    
        child1.getChildren().addAll(
                new TreeItem<>("child1-1"),
                new TreeItem<>("child1-2"));
    
        child2.getChildren().addAll(
                new TreeItem<>("child2-1"),
                new TreeItem<>("child2-2"));
    
        treeView.setRoot(root);
    
        Button button = new Button("Change");
        button.disableProperty().bind(treeView.getSelectionModel().selectedItemProperty().isNull());
        TextField textField = new TextField();
    
        button.setOnAction(evt -> {
            // set text of selected item to TextField text
            TreeItem<String> item = treeView.getSelectionModel().getSelectedItem();
            String text = textField.getText();
            item.setValue(text);
        });
    
        Scene scene = new Scene(new VBox(treeView, textField, button));
    
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    

相关问题