找不到基本名称的

找不到基本名称的

我有本地化的JavaFX应用程序。但是,由于FXML Loader无法找到本地化包,我无法使其工作

Caused by: java.util.MissingResourceException: Can't find bundle for base name bundles.lcars, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:845)
    at cz.muni.fi.pv168.view.GUI.start(GUI.java:24)


结构体:

java - JavaFX语言环境包:找不到基本名称的包-LMLPHP

GUI主类:

public void start(Stage primaryStage) throws Exception {
    Locale locale = Locale.getDefault();
    FXMLLoader fxmlLoader = new FXMLLoader();
    fxmlLoader.setResources(ResourceBundle.getBundle("bundles.lcars", locale));
    Parent root = FXMLLoader.load(getClass().getResource("lcars.fxml"),ResourceBundle.getBundle("bundles" +
            ".lcars", locale));
    Scene scene = new Scene(root, 1920 , 1080);   // 19:10
    // set scene to stage and other irrelevant stuff

}


我也尝试将bundles文件夹移到根包,但没有成功。另外,我尝试了每个已经回答的问题,以查询“找不到基本名称的捆绑包”。

编辑@Slaw
我将代码更改为此,仍然没有成功

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("lcars.fxml"));
fxmlLoader.setResources(ResourceBundle.getBundle("bundles.lcars", locale));
Parent root = fxmlLoader.load();


谢谢你的帮助。

最佳答案

尝试使用ResourceBundle类:

private static ResourceBundle language = ResourceBundle.getBundle(
        "cz.muni.fi.pv168.gui.GUI", Locale.getDefault());


我的文件结构是这样的:

java - JavaFX语言环境包:找不到基本名称的包-LMLPHP

由此您应该了解如何设置。

您可以像这样引用本地化的字符串:

language.getString("agentsEmptyBirthDateMessage")

关于java - JavaFX语言环境包:找不到基本名称的包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50665255/

10-10 17:06