2016-06-08 3 views
0

나는 자바 FX에 초보자 오전, 안드로이드 스튜디오에서 이루어집니다 유사한 방법으로, 나는 내가 fxml 파일에서 읽을 수있는 몇 가지 자료를 저장할 수있는 strings.xml의라는 파일을 가지고 싶습니다. 내가 strings.xml의에 다음 코드를 가지고 예를 들어, :fxml 파일의 XML 파일에서 값을 읽으려면 어떻게해야합니까?

<resources> 
    <string name="app_name">My App Name</string> 
</resources> 

은 내가 fxml 파일에서이 같은 일을하고 싶습니다 :

text="@string/app_name" 

을 것을 달성하는 것이 가능 방법 ?

+3

일반적인 생각 하나 : XML 파일을 읽고 구문 분석하는 ['ResourceBundle'] (http://docs.oracle.com/javase/8/docs/api/java/util/ResourceBundle.html)을 구현할 수 있습니다 , 그리고 나서'FXMLLoader'에 인스턴스를 넘깁니다. 그런 다음 표준 FXML [자원 분석] (http://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html#resource_resolution)을 사용하십시오. 또는 XML을 사용하지 않는 경우 표준 ['PropertyResourceBundle'] (http://docs.oracle.com/javase/8/docs/api/java/util/PropertyResourceBundle.html)을 사용하여 일반 특성 파일. –

답변

2

예, Android 리소스와 비슷한 방식으로 FXML 파일 내에서 국제화 된 문자열을 사용할 수 있습니다. 몇 가지 차이점이 있습니다 :

  1. 리소스 파일 대신 .xml.properties 파일입니다. 변수가 너무 다른 방식으로 정의됩니다

    variable.name_1=Hello 
    variable.name_2=World 
    

    (주 <resource> 태그 누락, 그것은 [var_name]=[value] 다만 보통이다).

  2. FXML 파일에서 문자열을 참조하려면 @string/ 대신 %을 사용합니다. 그것 뿐이다

    <Button 
        fx:id="button1" 
        text="%variable.name_1" 
    /> 
    

예를 들면 다음과 같습니다. ResourceBundle을 검색하는 것이 좋습니다. 올바른 언어를 선택하기 위해 속성 파일의 이름을 지정하는 방법을 설명하기 때문입니다. 또한 해당 번들은 국제화 된 변수를 코드에 추가 할 때도 사용할 수 있습니다.

관련 문제