From f284088a7fdcbf94dbcc1e08f74e08136589ba57 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Fri, 22 Jul 2016 18:47:16 -0400 Subject: [PATCH] Remember language between instances. --- src/cl/cromer/estructuras/Main.java | 10 ++++++++-- src/cl/cromer/estructuras/MenuController.java | 11 +++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/cl/cromer/estructuras/Main.java b/src/cl/cromer/estructuras/Main.java index f35a285..d662326 100644 --- a/src/cl/cromer/estructuras/Main.java +++ b/src/cl/cromer/estructuras/Main.java @@ -14,6 +14,7 @@ import java.io.IOException; import java.util.Locale; import java.util.ResourceBundle; import java.util.logging.Level; +import java.util.prefs.Preferences; /** * Estructuras de Datos @@ -37,7 +38,11 @@ public class Main extends Application { */ @Override public void start(Stage stage) { - Locale locale = new Locale("es", "ES"); + Preferences preferences = Preferences.userRoot().node(this.getClass().getName()); + String idoma = preferences.get("idioma", "en"); + String idoma2 = preferences.get("idioma2", "EN"); + + Locale locale = new Locale(idoma, idoma2); ResourceBundle resourceBundle = ResourceBundle.getBundle("cl.cromer.estructuras.bundles.Idioma", locale); try { @@ -53,10 +58,11 @@ public class Main extends Application { stage.close(); } - stage.setMaximized(true); + //stage.setMaximized(true); stage.setMinHeight(640); stage.setMinWidth(768); stage.getIcons().add(new Image(getClass().getResourceAsStream("/cl/cromer/estructuras/images/icon.png"))); + stage.setUserData(preferences); stage.show(); } diff --git a/src/cl/cromer/estructuras/MenuController.java b/src/cl/cromer/estructuras/MenuController.java index 58f8989..9748318 100644 --- a/src/cl/cromer/estructuras/MenuController.java +++ b/src/cl/cromer/estructuras/MenuController.java @@ -18,6 +18,7 @@ import java.util.Locale; import java.util.Optional; import java.util.ResourceBundle; import java.util.logging.Level; +import java.util.prefs.Preferences; /** * Controlar las acciones cuando una opciĆ³n es elegido en el menu. @@ -284,6 +285,9 @@ public class MenuController extends VBox implements Initializable { */ @FXML protected void menuIngles() { + Stage stage = (Stage) menuBar.getScene().getWindow(); + Preferences preferences = (Preferences) stage.getUserData(); + ButtonType botonCambiar = new ButtonType(resourceBundle.getString("cambiar"), ButtonBar.ButtonData.OK_DONE); ButtonType botonCancelar = new ButtonType(resourceBundle.getString("cancelar"), ButtonBar.ButtonData.CANCEL_CLOSE); Dialog dialog = new Dialog<>(); @@ -299,6 +303,8 @@ public class MenuController extends VBox implements Initializable { Optional result = dialog.showAndWait(); if (result.isPresent() && result.get() == botonCambiar) { // Si hace click en cambiar, cambiar el idioma y reiniciar. + preferences.put("idioma", "en"); + preferences.put("idioma2", "EN"); Locale locale = new Locale("en", "EN"); ResourceBundle resourceBundle = ResourceBundle.getBundle("cl.cromer.estructuras.bundles.Idioma", locale); @@ -311,6 +317,9 @@ public class MenuController extends VBox implements Initializable { */ @FXML protected void menuEspanol() { + Stage stage = (Stage) menuBar.getScene().getWindow(); + Preferences preferences = (Preferences) stage.getUserData(); + ButtonType botonCambiar = new ButtonType(resourceBundle.getString("cambiar"), ButtonBar.ButtonData.OK_DONE); ButtonType botonCancelar = new ButtonType(resourceBundle.getString("cancelar"), ButtonBar.ButtonData.CANCEL_CLOSE); Dialog dialog = new Dialog<>(); @@ -326,6 +335,8 @@ public class MenuController extends VBox implements Initializable { Optional result = dialog.showAndWait(); if (result.isPresent() && result.get() == botonCambiar) { // Si hace click en cambiar, cambiar el idioma y reiniciar. + preferences.put("idioma", "es"); + preferences.put("idioma2", "ES"); Locale locale = new Locale("es", "ES"); ResourceBundle resourceBundle = ResourceBundle.getBundle("cl.cromer.estructuras.bundles.Idioma", locale);