2012-05-15 37 views
1

我有一個用JavaFX編寫的應用程序(使用FXML)。我正在嘗試國際化我的應用程序。我試圖按照this tutorial中描述的方式去做。爲什麼ResourceBundle爲null(在使用FXML和JavaFX 2.0的應用程序中)

我有文字像這樣的屬性文件:提交=Войти

我有一個按鈕,在FXML描述:

<Button id="button1" fx:id="submit" layoutX="69.0" layoutY="200.0" onAction="#loginFired" prefHeight="45.0" prefWidth="97.0" text="\%submit" /> 

屬性文件FXML文件在同一目錄下。

但我的按鈕沒有一個文本,我期望它有,它被寫入「%submit」,但不是「Войти」。 然後我試圖做這樣的事情在this one tutorial 在我intialize方法我有徐代碼:

@Override 
public void initialize(URL arg0, ResourceBundle resources) { 
    if(resources == null) 
     System.out.println("error"); 
} 

,它給了我一個「錯誤」消息日誌。

那麼,我做錯了什麼?

回答

3
text="\%submit" 

\字符意味着逸出的下一個字符是%在這種情況下,得到的將被寫爲「%提交」在輸出中。所以正確的用法是text="%submit"

如果您使用的是FXMLLoader那麼不要忘記設置資源以及​​加載FXML文件:

fxmlLoader.setResources(ResourceBundle.getBundle("bundles.MyBundle", locale)); 

再次JavaFX 2 and Internationalization找完整的例子。
同時檢查ResourceBundle.getBundle("bundles.MyBundle", locale)的結果是否爲空。

+0

正如這一條語句* if(resources == null)*所示,我的ResourceBundle資源爲空。而一個問題是我做錯了,它是空的? –

+1

要麼你沒有通過'fxmlLoader.setResources()'或'ResourceBundle.getBundle(「bundles.MyBundle」,locale)''設置資源返回null。當然還有其他的原因。 –

相關問題