当前位置: 首页 > 知识库问答 >
问题:

如何在JavaFX中使用treeview在主文件夹中创建多个文件夹?

洪涵亮
2023-03-14

为了说明这一点,我正在创建一个treeview,它将在用户创建一个文件夹后实例化自己,并且所述文件夹将被添加为TreeItem。

我现在有这个:

TreeView treeView = new TreeView();

// Create new folder
MenuItem menuItem1 = new MenuItem("Create New Folder");
menuItem1.setOnAction(e -> {
    System.out.println("Please name your directory:");
    Scanner in = new Scanner(System.in);
    String strFolder = in. nextLine();
    createFolder(strFolder); // Create folder
    TreeItem rootFolder = new TreeItem(strFolder); // Create new TreeItem
    treeView.setRoot(rootFolder); // Replace old folder with new one
    // rootFolder.getChildren().add(rootFolder);
    // rootItem.getChildren().add(rootFolder);

});

多谢了。

共有1个答案

史钊
2023-03-14

只需将TreeItem添加到TreeItem的子列表中。如果未选择任何项,则以下示例将替换根项,否则将新项添加为所选项的子项:

TreeView<String> treeView = new TreeView<>(); // never use raw type without good reason

// Create new folder
MenuItem menuItem1 = new MenuItem("Create New Folder");
menuItem1.setOnAction(e -> {
    TextInputDialog dialog = new TextInputDialog(); // replacing console input with dialog here

    dialog.setHeaderText("Please name your directory:");
    String strFolder = dialog.showAndWait().orElse(null);

    if (strFolder != null) {
        TreeItem<String> newFolder = new TreeItem<>(strFolder); // Create new TreeItem

        TreeItem<String> selection = treeView.getSelectionModel().getSelectedItem();

        createFolder(strFolder); // Create folder ; TODO: make dependent on parent???

        if (selection == null) {
            treeView.setRoot(newFolder); // Replace old folder with new one
        } else {
            selection.getChildren().add(newFolder);
            selection.setExpanded(true); // make sure we're able to see the new child
        }
    }
});
 类似资料:
  • 问题内容: 我想在此处创建的文件夹中创建一个文本文件。 但是此代码不会将文本文件创建到该文件夹​​中。而是将文本文件放置在该文件夹之外。 问题答案: java.io.File的构造函数之一带有一个父目录。您可以改为:

  • 问题内容: 如何在Java中创建一个空文件夹? 问题答案:

  • 消息:org.xml.sax.SAXParseException:元素类型“meta”必须由匹配的结束标记“”终止。(javax.xml.Transform.TransformerException)代码:mule_error---2----------------------------“** HTM文件中的Meta标记应该与该标记完全相同地创建。 如何解决这些问题?

  • 问题内容: 我试图使用 File类 在“ C:/ Temp / Emptyfile”之 类 的目录中创建一个空文件。但是,当我这样做时,它显示了一个错误:“已经创建了文件夹Temp”。否则,它不会为我创造一个。 那么,如何从字面上创建使用Java API的文件夹? 问题答案: 在对象上使用该方法的外观文件:http : //www.roseindia.net/java/beginners/java

  • 问题内容: import java.io.File; File folder = new File(Environment.getExternalStorageDirectory() + “/TollCulator”); boolean success = true; if (!folder.exists()) { //Toast.makeText(MainActivity.this, “Dire

  • 问题内容: 我不熟悉Swift,也不确定如何从字符串路径(或某种对象)创建新文件夹 这是在带有Cocoa的OS X上。 问题答案: 我的理解是,您正在尝试使用swift以编程方式创建目录。下面给出的代码执行相同的操作。