Comment recharger l'écran lors du changement de langue dans JavaFX?
Bien, je suis débutant en java et fxml.
J'ai créer une application et la nécessité de changer la langue de l'écran. J'ai le fichier avec l'internationalisation des touches, mais j'ai aucune idée de comme recharger l'écran avec le changement de langue.
L'application disposent d'un menu où sont les langues disponibles. Je veux juste de rafraîchissement de l'écran lorsque l'utilisateur de changer la langue.
changement est encore manuel, comme vous pouvez le voir sur 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);
}
Ce code est sur le contrôleur, lorsque le changement de langue:
@FXML
private void btnMenuLanguageEnglishAction(ActionEvent event) {
this.locale = new Locale("en", "US");
}
@FXML
private void btnMenuLanguagePortuguesAction(ActionEvent event) {
this.locale = new Locale("pt", "BR");
}
comment envoyer ces paramètres régionaux pour principales et de rafraîchissement de l'écran?
de même que la méthode que j'utilise? J'ai essayé quelques-uns que j'ai vu ici sur le site, mais personne n'a répondu à ma question.
OriginalL'auteur Kross | 2014-01-16
Vous devez vous connecter pour publier un commentaire.
Voici mon oeuvre:
Vous pouvez utiliser cette classe comme classe de base pour le contrôleur, quelque chose comme ceci:
JavaFXController.java:
AppSettings.java:
UTF8Control.java:
OriginalL'auteur Eng.Fouad
Je sais, c'est assez vieille question, mais je suis nouveau dans JavaFX et j'ai simplement eu le même problème.
Voici ma solution finale pour le changement de langue dans l'app. Il est peut-être pas idéal, mais cela fonctionne pour moi.
Dans le contrôleur, j'ai cette méthode:
La méthode de charge le nouveau chargeur dans ma scène (à la charge en scène fonctionne également).
Pour le scénario complet ... je peux changer de langue en cours avec deux radiomenuitems dans le menu, donc, après le chargement d'un nouveau chargeur (dans la méthode "public void initialize(URL de l'emplacement, de ResourceBundle ressources)" dans le contrôleur) j'ai modifier la sélection de radiomenuitems avec ce commutateur:
Il est simple et peut être utile pour quelqu'un d'autre qui ont ce problème.
OriginalL'auteur Androdos
J'ai réussi à résoudre, le code:
Principal:
le contrôleur:
mais a encore un problème: le changement de langue peut se produire qu'une seule fois, la deuxième fois, vous donne une erreur fatale... Espérons que l'aide à quelqu'un.
OriginalL'auteur Kross
Utiliser la liaison avec votre Label (Étiquette, Texte, TitledPane, etc).
OriginalL'auteur Vaidhyanathan Ganapathy