JavaFx:FXMLLoader-未找到资源

JavaFx:FXMLLoader-未找到资源,java,javafx-8,resourcebundle,fxmlloader,Java,Javafx 8,Resourcebundle,Fxmlloader,我准备了自己的类国际化,它扩展了类ResourceBundle,以便在属性文件中找不到键时挂起异常 public class Internationalization extends ResourceBundle{ private ResourceBundle bundle; public Internationalization(ResourceBundle bundle) { this.bundle = bundle; } public S

我准备了自己的类国际化,它扩展了类ResourceBundle,以便在属性文件中找不到键时挂起异常

public class Internationalization extends ResourceBundle{
    private ResourceBundle bundle;

    public Internationalization(ResourceBundle bundle) {
        this.bundle = bundle;
    }

    public String getFormattedString(String key, Object[] args) {
       if (bundle.containsKey(key)) {
            String value = bundle.getString(key);
            value = replaceSingleQuotes(value);
            MessageFormat mf = new MessageFormat(value);
            return mf.format(args);
       } else {
           return '!' + key + '!';
       }        
    }

    private static String replaceSingleQuotes(String template) {
        return template.replace("'", "''");
    }  

    @Override
    protected Object handleGetObject(String key) {
        if (bundle.containsKey(key)) {
            return bundle.getString(key);
        } else {
            return '!' + key + '!';
        }
    }

    @Override
    public Enumeration<String> getKeys() {
        return bundle.getKeys();
    }
}

您能帮我找出问题出在哪里吗?

您是否想过在getKeys方法返回的枚举中搜索密钥?您是对的。问题出在getKey方法中。知道如何处理它吗?我想您必须返回一个“虚构”枚举,该枚举对于任何对enum.contains(key)的调用都返回true,而不管key的值是多少。
Internationalization lngStr = new Internationalization(ResourceBundle.getBundle("language/lngStr"));
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/LogIn.fxml"));
loader.setResources(lngStr);
Pane pane = loader.load();
scrMain.setContent((Node) pane);