resourcefile not found at runtime [message #1173588] |
Wed, 06 November 2013 16:23 |
Jackson McCann Messages: 4 Registered: November 2013 |
Junior Member |
|
|
I specify a resource file in my .fxgraph file and use it to set the text on some buttons. This works fine in the previewer but when I run my code it fails with the following error.
No resources specified.
/M:/Workspace/EACobolTool/bin/uk/co/adminre/eacoboltool/EACobolTool.fxml:21
at javafx.fxml.FXMLLoader$Element.processPropertyAttribute(Unknown Source)
at javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(Unknown Source)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at uk.co.adminre.eacoboltool.Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4$1.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
at com.sun.glass.ui.win.WinApplication$3$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
javafx.fxml.LoadException: No resources specified.
at javafx.fxml.FXMLLoader$Element.processPropertyAttribute(Unknown Source)
at javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(Unknown Source)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at uk.co.adminre.eacoboltool.Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4$1.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
at com.sun.glass.ui.win.WinApplication$3$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Removing the reference to the resource file and putting the button text into the .fxml file allows the application to run. Where should the resource file be placed so that it's found at runtime? Do I have to add some code to the application to get it picked up?
Jackson
[Updated on: Wed, 06 November 2013 16:24] Report message to a moderator
|
|
|
|
Re: resourcefile not found at runtime [message #1174733 is a reply to message #1173595] |
Thu, 07 November 2013 09:30 |
Jackson McCann Messages: 4 Registered: November 2013 |
Junior Member |
|
|
Thanks for the quick reply. The following change fixed the problem:
ResourceBundle resources = ResourceBundle.getBundle("uk.co.mycompany.mypackage.messages") ;
BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("MyScreen.fxml"), resources);
Scene scene = new Scene(root,400,400);
This loads the resources in the file messages.properties that is located in the uk.co.mycompany.mypackage directory.
I also tried the following (based on the answer to the question "javafx 2 and internationalization" on StackOverflow (had to remove link as I haven't 5 posts yet)) that resulted in the following working code.
FXMLLoader fxmlLoader = new FXMLLoader();
ResourceBundle resources = ResourceBundle.getBundle("uk.co.mycompany.mypackage.messages") ;
fxmlLoader.setResources(resources) ;
BorderPane root = (BorderPane) fxmlLoader.load(this.getClass().getResource("MyScreen.fxml").openStream());
Scene scene = new Scene(root,400,400);
[Updated on: Thu, 07 November 2013 09:30] Report message to a moderator
|
|
|
|
Powered by
FUDForum. Page generated in 0.03618 seconds