gpt4 book ai didi

java - 无法访问 javafx.collections.ObservableList

转载 作者:行者123 更新时间:2023-12-05 04:43:11 25 4
gpt4 key购买 nike

我正在创建一个 JavaFX 应用程序。我开始使用本地 SDK 开发它,现在我尝试使用 Gradle。我按如下方式创建了 build.gradle:

plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.10'
}

application {
mainClassName='Main.GUI.Main'
}

dependencies {
implementation 'org.controlsfx:controlsfx:11.1.0'
implementation 'org.apache.derby:derby:10.15.2.0'
}

javafx {
version = "17.0.1"
modules = [ 'javafx.controls', 'javafx.fxml']
}

repositories {
mavenCentral()
}

这是我抛出错误 javafx.collections.ObservableList 的代码的一部分:

package GUI;

import Main.Archive;
import Main.Document;
import Main.Node;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;

import java.net.URL;
import java.nio.file.Path;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;


public class MainController implements Initializable
{

@FXML private TreeView<Node> tagTree;
@FXML private TableView<Document> fileTable;
@FXML private TableColumn<Document, String> name;
@FXML private TableColumn<Document, Date> date;
@FXML private TableColumn<Document, Integer> size;
@FXML private TableColumn<Document, Path> path;

private static Archive archive;
private static Main mainApp;

public void setMainApp(Main mainApp){
this.mainApp = mainApp;
}

@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
if(tagTree!=null)
setTagTree(archive.getTagTree());
}

public void setTagTree(Node tags){
TreeItem rootItem = new TreeItem("Tags");
if(tags.getChildren()!=null)
for (Node n:tags.getChildren())
addNodes(rootItem, n);
tagTree.setRoot(rootItem);
}

// Recursively creates a TreeItem for each tag and adds it to its root
void addNodes(TreeItem<String> rootItem, Node tags){
List<Node> children = tags.getChildren();
// If it's the last item just add it
if(children.isEmpty())
rootItem.getChildren().add(new TreeItem<>(tags.getData().getName())); // HERE
else{
// Otherwise, add each child to the root
TreeItem<String> son = new TreeItem(tags.getData().getName());
for (Node n : children)
addNodes(son, n);
rootItem.getChildren().add(son); // ALSO HERE
}
}

public void setArchive(Archive archive){
MainController.archive = archive;
}

@FXML
private void logout(){
archive.logout();
System.exit(0);
}

@FXML
private void addDocument(){
mainApp.showAddDocument();
}

@FXML
private void addTag(){

}

}

我对 javafx.util.Callback 和 javafx.event.EventTarget 也有类似的问题。

The error

最佳答案

正如jewelsea所说,是版本问题。我使用的是 17.0.1,它不存在,而不是 17.0.0.1。

关于java - 无法访问 javafx.collections.ObservableList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69697904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com