我知道这似乎是一个常见的主题,但到目前为止, StackOverflow上没有任何解决方案。请参阅下面的所有尝试内容。
问题:无论尝试使用哪种路径,getResource()
方法都无法为我的项目检索资源。
项目结构::所讨论的资源为mainWindow.fxml
,我尝试在其中检索的类为Main.java
。
src/
|-- main/
|-- java/
|-- app/
|-- myproject/
|> FXMLController.java
|> Main.java
|> package-info.java
|> styles.css
|> mainWindow.fxml
|> module-info.java
|-- resources/
|-- test/
|> build.gradle
|> gradlew
|> gradlew.bat
|> settings.gradle
但是,请注意,我还尝试将资源放入resources/
和resources/fxml/
内,并尝试了所有路径(见下文)。
我尝试过的路径:以下路径已尝试使用上述所有路径,并且都使用getClass().getResource()
和 getClass().getClassLoader().getResource()
。< / p>
mainWindow.fxml
/mainWindow.fxml
fxml/mainWindow.fxml
/fxml/mainWindow.fxml
如果有帮助,我正在Windows上并使用IntelliJ IDEA社区版。
答案 0 :(得分:0)
以下是我们在JavaFX 8应用程序上使用的一些代码,它们将非常有用
我们用fx-id命名所有锚定窗格。如果使用Maven应用程序制作JavaFX,则此代码将不起作用。 toChildView()是按钮的动作事件
export class EventService {
test$ = new Subject();
watch() {
return this.test$;
}
push() {
this.test$.next('Hello World');
}
}
export class Component {
watch() {
this.eventService.watch().subscribe((obj)=>{ console.log('Helo', obj)});
}
test() {
this.eventService.push();
}
unsubscribe(){
this.eventService.watch().unsubscribe();
}
}