Wie laden Sie den Bildschirm beim Wechsel von Sprachen in JavaFX?
Gut, ich bin Anfänger mit java und fxml.
Ich erstellen Sie eine Anwendung, und brauchen, um die Sprache zu ändern auf dem Bildschirm. Ich habe die Datei mit internationalisierten Tasten, aber ich haben keine Idee, wie laden Sie den Bildschirm mit der Sprache geändert.
Die Anwendung ein Menü, wo die Sprache verfügbar ist. Ich will nur aktualisieren Bildschirm, wenn der Benutzer die Sprache ändern.
ändern, ist immer noch die manuelle, wie Sie sehen können, im code: (Main.java):
public class Main extends Application {
private Locale locale = new Locale("en", "US");
private Image icon = new Image("picture.jpg");
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Home.fxml"), ResourceBundle.getBundle("label", locale));
Scene scene = new Scene(root);
stage.setTitle("GUI");
stage.getIcons().add(icon);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
Dieser code befindet sich auf dem controller, wenn die Sprache ändern:
@FXML
private void btnMenuLanguageEnglishAction(ActionEvent event) {
this.locale = new Locale("en", "US");
}
@FXML
private void btnMenuLanguagePortuguesAction(ActionEvent event) {
this.locale = new Locale("pt", "BR");
}
so senden Sie diese locale-main und den Bildschirm aktualisieren?
wie wird die Methode, die ich benutze? Ich habe versucht, einige, die ich sah, hier auf der Website, aber niemand meine Frage beantwortet.
InformationsquelleAutor Kross | 2014-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist meine Umsetzung:
Können Sie verwenden Sie diese Klasse als Basisklasse für die controller, so etwas wie dieses:
JavaFXController.java:
AppSettings.java:
UTF8Control.java:
InformationsquelleAutor Eng.Fouad
Ich weiß, es ist eine ziemlich alte Frage, aber ich bin neu in JavaFX und ich hatte genau das gleiche problem.
Hier ist meine Finale Lösung für das ändern der Sprache in der app. Es ist vielleicht nicht ideal, aber es funktioniert für mich.
Im controller habe ich diese Methode:
Die Methode lädt neue loader in meine Szene (zum laden in der Bühne auch funktioniert).
Für komplette Szenario ... ändern kann ich die aktuelle Sprache mit zwei radiomenuitems im Menü, also nach dem laden new loader (in der Methode "public void initialize(URL, ResourceBundle Ressourcen)" im controller), die ich ändern Auswahl radiomenuitems mit diesem Schalter:
Es ist einfach und kann nützlich sein, für jemand anderes dieses problem haben.
InformationsquelleAutor Androdos
Ich es geschafft, zu lösen, den code:
Main:
controller:
aber noch ein problem: eine änderung der Sprache kann nur einmal vorkommen, beim zweiten mal gibt schwerwiegender Fehler... Hoffe, dass jemand hilft.
InformationsquelleAutor Kross
Bindung mit Ihr Beschriftet (Label, Text, TitledPane, etc).
InformationsquelleAutor Vaidhyanathan Ganapathy