Heim  >  Artikel  >  Java  >  So verwenden Sie JavaFX, um eine mehrsprachig unterstützte grafische Benutzeroberfläche in Java 9 zu implementieren

So verwenden Sie JavaFX, um eine mehrsprachig unterstützte grafische Benutzeroberfläche in Java 9 zu implementieren

WBOY
WBOYOriginal
2023-07-29 13:02:01935Durchsuche

So verwenden Sie JavaFX in Java 9, um eine grafische Oberfläche mit Mehrsprachenunterstützung zu implementieren

Einführung:
Mit der Entwicklung der Globalisierung ist die Mehrsprachenunterstützung zu einer wichtigen Voraussetzung für die Softwareentwicklung geworden. Die Internationalisierung von Texten in verschiedenen Sprachen ist ein notwendiger Schritt bei der Entwicklung grafischer Oberflächen. In Java 9 können wir JavaFX verwenden, um eine grafische Oberfläche mit Mehrsprachenunterstützung zu implementieren. In diesem Artikel wird erläutert, wie Sie mit dem von JavaFX bereitgestellten Resource Bundle-Mechanismus mehrsprachige Unterstützung erreichen, und es wird ein entsprechender Beispielcode bereitgestellt.

1. Ressourcendateien vorbereiten
Im Projekt müssen wir eine Ressourcendatei für jede Sprache vorbereiten und die Unterstützung mehrerer Sprachen erreichen, indem wir verschiedene Ressourcendateien laden.

1. Erstellen Sie einen Ressourcenordner
Erstellen Sie im Verzeichnis src/main/java des Projekts einen Ordner mit dem Namen resources. In diesem Ordner werden Ressourcendateien in verschiedenen Sprachen gespeichert.

2. Ressourcendateien erstellen
Erstellen Sie im Ressourcenordner eine Ressourcendatei für jede Sprache. Die Benennungsregel für Ressourcendateien lautet baseName_sprache.properties, wobei baseName der Basisname der Ressourcendatei und language die Kennung der Sprache ist. Beispielsweise können wir eine Ressourcendatei mit dem Namen bundle_zh_CN.properties erstellen, um vereinfachten chinesischen Text zu speichern.

3. Geben Sie den Ressourceninhalt ein.
Öffnen Sie die Ressourcendatei und geben Sie den Text ein, der entsprechend dem Schlüssel-Wert-Paar internationalisiert werden muss. Beispielsweise können wir der Datei bundle_zh_CN.properties den folgenden Inhalt hinzufügen:

greeting=你好!

2. Ressourcendateien laden
Verwenden Sie in JavaFX die Klasse ResourceBundle, um Ressourcendateien zu laden. Wir müssen die entsprechende Ressourcendatei entsprechend der Sprache des Benutzers im zu ladenden Programm auswählen.

1. Holen Sie sich das Standardgebietsschema
Locale ist eine Klasse, die Sprache, Land und andere Informationen beschreibt. Wir können die Methode java.util.Locale.getDefault() verwenden, um das Standardgebietsschema des aktuellen Benutzers abzurufen.

2. Ressourcendateien basierend auf dem Gebietsschema laden
Verwenden Sie die Methode ResourceBundle.getBundle(), um die entsprechende Ressourcendatei zu laden. Die eingehenden Parameter sind der grundlegende Name und das Gebietsschema der Ressourcendatei. Beispielsweise können wir die Datei bundle_zh_CN.properties über den folgenden Code laden:

ResourceBundle bundle = ResourceBundle.getBundle("bundle", Locale.CHINA);

3. Holen Sie sich den Textinhalt
Nachdem wir die Ressourcendatei geladen haben, können wir den entsprechenden Textinhalt basierend auf dem Schlüssel in der Ressourcendatei abrufen.

1. Textinhalte in JavaFX abrufen
In JavaFX können wir eine Textinternationalisierung erreichen, indem wir @FxText mit Anmerkungen versehen. Wir müssen diese Annotation in der FXML-Datei verwenden und den entsprechenden Schlüssel festlegen. Zum Beispiel können wir dies in die FXML-Datei schreiben:

<Text fx:id="greeting" text="%greeting" />

2. Legen Sie den Textinhalt fest
In der JavaFX-Controller-Klasse können wir den Textinhalt abrufen, indem wir die getString()-Methode von ResourceBundle aufrufen und ihn auf das entsprechende On anwenden die Kontrolle. Beispielsweise können wir dies in die Initialisierungsmethode der Controller-Klasse schreiben:

@FXML
private Text greeting;
bundle = ResourceBundle.getBundle("bundle", Locale.getDefault());
String greetingText = bundle.getString("greeting");
greeting.setText(greetingText);

4. Sprache wechseln
Um mehrsprachige Unterstützung zu erreichen, müssen wir Benutzern die Möglichkeit geben, die Sprache zu wechseln. Wir können die Sprachumschaltung über die von JavaFX bereitgestellten Triggerereignisse implementieren.

1. Ereignisse binden
In der JavaFX-Controller-Klasse können wir ein Triggerereignis an die Schaltfläche oder den Menüpunkt binden, der die Sprache wechselt. Beispielsweise können wir ein Klickereignis an eine Schaltfläche namens „changeLanguageButton“ binden:

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

2. Ereignisse verarbeiten
In der Controller-Klasse implementieren Sie die Methode zur Behandlung des Klickereignisses. Bei dieser Methode müssen wir das aktuelle Gebietsschema ändern, die Ressourcendatei neu laden und die Schnittstelle aktualisieren. Beispielsweise können wir die Methode „changeLanguageButtonClicked()“ wie folgt implementieren:

@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);
}

Fazit:
Durch die Verwendung des von JavaFX bereitgestellten Ressourcenpaketmechanismus können wir problemlos eine grafische Schnittstelle mit Mehrsprachenunterstützung implementieren. Durch die Einleitung dieses Artikels glaube ich, dass jeder die Methode zur Verwendung von JavaFX beherrschen kann, um mehrsprachige Unterstützung in Java 9 zu erreichen. Ich hoffe, dass dieser Artikel für das Studium aller hilfreich sein wird.

Referenzcode:
Inhalte in Ressourcendateien in verschiedenen Sprachen:
bundle_zh_CN.properties

greeting=你好!

bundle.properties

greeting=Hello!

@FxText-Annotation, die in FXML-Dateien verwendet wird:

<Text fx:id="greeting" text="%greeting" />

Methoden zur Verarbeitung von Klickereignissen in Controller-Klassen:

r reee

Das obige ist der detaillierte Inhalt vonSo verwenden Sie JavaFX, um eine mehrsprachig unterstützte grafische Benutzeroberfläche in Java 9 zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn