gpt4 book ai didi

java - FXMLLoader 未从 JUnitTest 加载(相对路径问题)

转载 作者:行者123 更新时间:2023-12-02 04:41:38 24 4
gpt4 key购买 nike

当我从 JavaFXAplication 类调用 WindowController 类的 loadFXMLItemsAgain() 方法时,绝对路径是正确的,但我在 WindowControllerTest (JUnit) 中执行相同的操作,会导致基本模块的绝对路径错误.../Deliverytool/... 正在切换到 .../deliverytool/deliverytool/... 这会导致错误。

我只是希望绝对路径与 JavaFXApplication 中的绝对路径相同,但我 100% 不知道它来自哪里。

我尝试使用 getClass.getRessource() 来修复它,但这是一个更严重的困惑:它在两种情况下都停止工作。

这里是 Project Structure 的链接.

//The method in WindowController:
public void loadFXMLItemsAgain() throws IOException {
FXMLLoader loader = new FXMLLoader(new File("deliverytool/Fxml/Window.fxml").toURI().toURL());
if (loader.getController() == null) {
loader.setController(this);
}
pane = loader.load();
}
//The way the method is called in JavaFXApplication
@Override
public void start(Stage primaryStage) throws Exception {
WindowController controller = new WindowController();
controller.setVerw(verw);
controller.setVerwk(verwk);
controller.loadFXMLItemsAgain();
primaryStage.setTitle("Deliverytool");
controller.init(primaryStage);
controller.show();
...
}
//The way the method is called in WindowControllerTest JUnit Test Class
public class WindowControllerTest {
WindowController controller = new WindowController();
@BeforeEach
public void init() throws IOException {
controller.loadFXMLItemsAgain();
}
...
}

java.io.FileNotFoundException:.../Inteliji IDEA/pizzagesch-ft/deliverytool/deliverytool/Fxml/Window.fxml(没有这样的文件或目录)

应该是:

.../Inteliji IDEA/pizzagesch-ft/deliverytool/Fxml/Window.fxml

最佳答案

确保“JavaFXApplication”和“WindowControllerTest JUnit 测试类”位于同一文件夹中。
后者似乎已经在“/deliverytool”文件夹中。

关于java - FXMLLoader 未从 JUnitTest 加载(相对路径问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513354/

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