検索
ホームページJava&#&チュートリアルJavaFX を使用して Java 9 で複数言語をサポートするグラフィカル インターフェイスを実装する方法

Java 9 で JavaFX を使用して、多言語サポートのあるグラフィカル インターフェイスを実装する方法

はじめに:
グローバリゼーションの進展に伴い、多言語サポートがソフトウェア開発の重要な要件になりました。さまざまな言語のテキストを国際化することは、グラフィカル インターフェイスを開発するときに必要な手順です。 Java 9 では、JavaFX を使用して、複数言語をサポートするグラフィカル インターフェイスを実装できます。この記事では、JavaFX が提供する Resource Bundle メカニズムを使用して多言語サポートを実現する方法と、対応するサンプル コードを紹介します。

1. リソース ファイルの準備
プロジェクトでは、言語ごとにリソース ファイルを準備し、異なるリソース ファイルを読み込むことで多言語サポートを実現する必要があります。

1. リソース フォルダーの作成
プロジェクトの src/main/java ディレクトリに、resources という名前のフォルダーを作成します。このフォルダーは、さまざまな言語のリソース ファイルを保存するために使用されます。

2. リソース ファイルの作成
リソース フォルダー内に、言語ごとにリソース ファイルを作成します。リソース ファイルの命名規則は、baseName_ language.properties です。ここで、baseName はリソース ファイルの基本名、 language は言語の識別子です。たとえば、簡体字中国語テキストを保存するために、bundle_zh_CN.properties という名前のリソース ファイルを作成できます。

3. リソースの内容を入力します
リソース ファイルを開き、キーと値のペアに従って国際化する必要があるテキストを入力します。たとえば、次の内容を Bundle_zh_CN.properties ファイルに追加できます。

greeting=你好!

2. リソース ファイルのロード
JavaFX では、ResourceBundle クラスを使用してリソース ファイルをロードします。ロードするプログラム内のユーザーの言語に応じて、対応するリソース ファイルを選択する必要があります。

1. デフォルトの Locale を取得する
Locale は、言語、国、その他の情報を記述するクラスです。 java.util.Locale.getDefault() メソッドを使用して、現在のユーザーのデフォルトのロケールを取得できます。

2. ロケールに従ってリソース ファイルをロードする
ResourceBundle.getBundle() メソッドを使用して、対応するリソース ファイルをロードします。受信パラメータは、リソース ファイルの基本名とロケールです。たとえば、次のコードを通じて、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 コントローラー クラスでは、言語を切り替えるボタンまたはメニュー項目にトリガー イベントをバインドできます。たとえば、changeLanguageButton という名前のボタンにクリック イベントをバインドできます:

<Button fx:id="changeLanguageButton" onAction="#changeLanguageButtonClicked" />

2. イベントの処理
コントローラー クラスで、クリック イベントを処理するメソッドを実装します。この方法では、現在のロケールを変更し、リソース ファイルを再ロードし、インターフェイスを更新する必要があります。たとえば、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!

@FXML ファイルで使用される FxText :

<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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JVMはオペレーティングシステムAPIの違いをどのように処理しますか?JVMはオペレーティングシステムAPIの違いをどのように処理しますか?Apr 27, 2025 am 12:18 AM

JVMは、JavanativeInterface(JNI)およびJava Standard Libraryを介してオペレーティングシステムのAPIの違いを処理します。1。JNIでは、Javaコードがローカルコードを呼び出し、オペレーティングシステムAPIと直接対話できます。 2. Java Standard Libraryは統一されたAPIを提供します。これは、異なるオペレーティングシステムAPIに内部的にマッピングされ、コードがプラットフォーム間で実行されるようにします。

Java 9で導入されたモジュール性は、プラットフォームの独立性にどのように影響しますか?Java 9で導入されたモジュール性は、プラットフォームの独立性にどのように影響しますか?Apr 27, 2025 am 12:15 AM

modularitydoesnotdirectlyectlyectjava'splatformindepensence.java'splatformendepenceismaindainededainededainededaindainedaindained bythejvm、butmodularityinfluencesApplucationStructure andmanagement、間接的なインパクチャプラット形成依存性.1)

ByteCodeとは何ですか?また、Javaのプラットフォームの独立性とどのように関係していますか?ByteCodeとは何ですか?また、Javaのプラットフォームの独立性とどのように関係していますか?Apr 27, 2025 am 12:06 AM

bytecodeinjavaisthe intermediaterepresentationthateNablesplatformindepence.1)javacodeis compiledintobytecodestoredin.classfiles.2)thejvminterpretsorcompilesthisbytecodeintomachinecodeatime、

Javaがプラットフォームに依存しない言語と見なされるのはなぜですか?Javaがプラットフォームに依存しない言語と見なされるのはなぜですか?Apr 27, 2025 am 12:03 AM

javaachievesplatformedenceTheTheTheJavavirtualMachine(JVM)、これは、javacodeisisisisisissompiledIntobytecode.2)javaCodeisisisisissompiledevedevicetecode.2)

グラフィカルユーザーインターフェイス(GUI)は、Javaのプラットフォーム独立性の課題をどのように提示できますか?グラフィカルユーザーインターフェイス(GUI)は、Javaのプラットフォーム独立性の課題をどのように提示できますか?Apr 27, 2025 am 12:02 AM

Javagui開発におけるプラットフォームの独立性は課題に直面していますが、Swing、Javafx、統一外観、パフォーマンス最適化、サードパーティライブラリ、クロスプラットフォームテストを使用することで対処できます。 Javaguiの開発は、クロスプラットフォームの一貫性を提供することを目的としたAWTとSwingに依存していますが、実際の効果はオペレーティングシステムごとに異なります。ソリューションには以下が含まれます。1)SwingおよびJavafxをGUIツールキットとして使用します。 2)uimanager.setlookandfeel()を介して外観を統合します。 3)さまざまなプラットフォームに合わせてパフォーマンスを最適化します。 4)ApachepivotやSWTなどのサードパーティライブラリを使用する。 5)一貫性を確保するために、クロスプラットフォームテストを実施します。

Java開発のどの側面がプラットフォームに依存していますか?Java開発のどの側面がプラットフォームに依存していますか?Apr 26, 2025 am 12:19 AM

javadevelopmentisnotentirelylylypratform-IndopentDuetoseveralfactors.1)jvmvariationsaffectperformanceandbehavioracrossdifferentos.2)nativeLibrariesviajniintroducePlatform-specificissues.3)giaiasystemsdifferbeTioneplateplatifflics.4)

さまざまなプラットフォームでJavaコードを実行するときにパフォーマンスの違いはありますか?なぜ?さまざまなプラットフォームでJavaコードを実行するときにパフォーマンスの違いはありますか?なぜ?Apr 26, 2025 am 12:15 AM

Javaコードは、さまざまなプラットフォームで実行するときにパフォーマンスの違いがあります。 1)JVMの実装と最適化戦略は、OracleJDKやOpenJDKなどとは異なります。 2)メモリ管理やスレッドスケジューリングなどのオペレーティングシステムの特性もパフォーマンスに影響します。 3)適切なJVMを選択し、JVMパラメーターとコード最適化を調整することにより、パフォーマンスを改善できます。

Javaのプラットフォームの独立性の制限は何ですか?Javaのプラットフォームの独立性の制限は何ですか?Apr 26, 2025 am 12:10 AM

java'splatformindepentedencehaslimitationsincludingporformanceoverhead、versioncompatibulisisues、changleSwithnativeLibraryIntegration、プラットフォーム固有の機能、およびjvminStallation/maintenation。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!