当我从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
答案 0 :(得分:0)
确保“ JavaFXApplication”和“ WindowControllerTest JUnit测试类”都位于同一文件夹中。
后者似乎已经在'/ deliverytool'文件夹中。