Java 9에서 JavaFX를 사용하여 다중 언어 지원이 포함된 그래픽 인터페이스를 구현하는 방법
소개:
세계화가 발전하면서 다중 언어 지원이 소프트웨어 개발의 중요한 요구 사항이 되었습니다. 다양한 언어로 된 텍스트를 국제화하는 것은 그래픽 인터페이스를 개발할 때 필요한 단계입니다. Java 9에서는 JavaFX를 사용하여 다중 언어를 지원하는 그래픽 인터페이스를 구현할 수 있습니다. 이 기사에서는 다중 언어 지원을 달성하기 위해 JavaFX에서 제공하는 리소스 번들 메커니즘을 사용하는 방법을 소개하고 해당 샘플 코드를 제공합니다.
1. 리소스 파일 준비
프로젝트에서는 언어별로 리소스 파일을 준비하고 다양한 리소스 파일을 로드하여 다국어 지원을 구현해야 합니다.
1. 리소스 폴더 생성
프로젝트의 src/main/java 디렉터리에 resources라는 폴더를 생성합니다. 이 폴더는 다양한 언어로 리소스 파일을 저장하는 데 사용됩니다.
2. 리소스 파일 생성
리소스 폴더 아래에 언어별 리소스 파일을 생성합니다. 리소스 파일의 명명 규칙은 baseName_언어.properties입니다. 여기서 baseName은 리소스 파일의 기본 이름이고 언어는 언어의 식별자입니다. 예를 들어, 중국어 간체 텍스트를 저장하기 위해 Bundle_zh_CN.properties라는 리소스 파일을 생성할 수 있습니다.
3. 리소스 내용 입력
리소스 파일을 열고 키-값 쌍에 따라 국제화해야 하는 텍스트를 입력합니다. 예를 들어, Bundle_zh_CN.properties 파일에 다음 콘텐츠를 추가할 수 있습니다.
greeting=你好!
2. 리소스 파일 로드
JavaFX에서는 ResourceBundle 클래스를 사용하여 리소스 파일을 로드합니다. 로드할 프로그램에서 사용자의 언어에 따라 해당 리소스 파일을 선택해야 합니다.
1. 기본 Locale 가져오기
Locale은 언어, 국가 및 기타 정보를 설명하는 클래스입니다. java.util.Locale.getDefault() 메소드를 사용하여 현재 사용자의 기본 Locale을 가져올 수 있습니다.
2.Locale 기반 리소스 파일 로드
ResourceBundle.getBundle() 메소드를 사용하여 해당 리소스 파일을 로드하며, 들어오는 매개변수는 리소스 파일의 기본 이름과 Locale입니다. 예를 들어 다음 코드를 통해 Bundle_zh_CN.properties 파일을 로드할 수 있습니다.
ResourceBundle bundle = ResourceBundle.getBundle("bundle", Locale.CHINA);
3. 텍스트 콘텐츠 가져오기
리소스 파일을 로드한 후 리소스 파일의 키를 기반으로 해당 텍스트 콘텐츠를 가져올 수 있습니다.
1. JavaFX에서 텍스트 콘텐츠 가져오기
JavaFX에서는 @FxText에 주석을 달아 텍스트 국제화를 달성할 수 있습니다. FXML 파일에서 이 주석을 사용하고 해당 키를 설정해야 합니다. 예를 들어 FXML 파일에 다음과 같이 작성할 수 있습니다.
<Text fx:id="greeting" text="%greeting" />
2. 텍스트 내용 설정
JavaFX의 컨트롤러 클래스에서 ResourceBundle의 getString() 메소드를 호출하여 텍스트 내용을 가져오고 해당 항목에 적용할 수 있습니다. 제어. 예를 들어 컨트롤러 클래스의 초기화 메서드에 다음과 같이 작성할 수 있습니다.
@FXML private Text greeting; bundle = ResourceBundle.getBundle("bundle", Locale.getDefault()); String greetingText = bundle.getString("greeting"); greeting.setText(greetingText);
4. 언어 전환
다중 언어 지원을 달성하려면 사용자에게 언어 전환 기능을 제공해야 합니다. JavaFX에서 제공하는 트리거 이벤트를 통해 언어 전환을 구현할 수 있습니다.
1. 이벤트 바인딩
JavaFX 컨트롤러 클래스에서는 언어를 전환하는 버튼이나 메뉴 항목에 트리거 이벤트를 바인딩할 수 있습니다. 예를 들어, click 이벤트를changeLanguageButton이라는 버튼에 바인딩할 수 있습니다.
<Button fx:id="changeLanguageButton" onAction="#changeLanguageButtonClicked" />
2. 이벤트 처리
컨트롤러 클래스에서 클릭 이벤트를 처리하는 메서드를 구현합니다. 이 방법에서는 현재 Locale을 변경하고, 리소스 파일을 다시 로드하고, 인터페이스를 업데이트해야 합니다. 예를 들어, 다음과 같이changeLanguageButtonClicked() 메소드를 구현할 수 있습니다.
@FXML private void changeLanguageButtonClicked() { if (Locale.getDefault().equals(Locale.CHINA)) { Locale.setDefault(Locale.US); } else { Locale.setDefault(Locale.CHINA); } bundle = ResourceBundle.getBundle("bundle", Locale.getDefault()); String greetingText = bundle.getString("greeting"); greeting.setText(greetingText); }
결론:
JavaFX에서 제공하는 리소스 번들 메커니즘을 사용하면 다국어 지원이 가능한 그래픽 인터페이스를 쉽게 구현할 수 있습니다. 이 기사의 소개를 통해 모든 사람이 JavaFX를 사용하여 Java 9에서 다중 언어 지원을 달성하는 방법을 익힐 수 있다고 믿습니다. 이 글이 모든 분들의 공부에 도움이 되기를 바랍니다.
참조 코드:
다른 언어로 된 리소스 파일의 내용:
bundle_zh_CN.properties
greeting=你好!
bundle.properties
greeting=Hello!
@FxText FXML 파일에 사용되는 주석:
<Text fx:id="greeting" text="%greeting" />
컨트롤러 클래스에서 클릭 이벤트를 처리하는 방법:
@FXML private void changeLanguageButtonClicked() { if (Locale.getDefault().equals(Locale.CHINA)) { Locale.setDefault(Locale.US); } else { Locale.setDefault(Locale.CHINA); } bundle = ResourceBundle.getBundle("bundle", Locale.getDefault()); String greetingText = bundle.getString("greeting"); greeting.setText(greetingText); }
위 내용은 JavaFX를 사용하여 Java 9에서 다중 언어 지원 그래픽 인터페이스를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!