Eddymaniac
Erfahrenes Mitglied
Hallo Leute,
ich lade mehrsprachige Texte beim starten meiner Anwendung. Nun möchte ich diese Texte beim Klick auf einen Button verändern. Leider klappt das nicht.
Könnte mal jemand über meinen Code schauen wo der Fehler liegt? Ist ein Mal die Sprache gesetzt, scheint das Programm diese beizubehalten...
meine Controller Class:
meine Messages Class:
ich lade mehrsprachige Texte beim starten meiner Anwendung. Nun möchte ich diese Texte beim Klick auf einen Button verändern. Leider klappt das nicht.
Könnte mal jemand über meinen Code schauen wo der Fehler liegt? Ist ein Mal die Sprache gesetzt, scheint das Programm diese beizubehalten...
meine Controller Class:
Code:
package controller;
import java.io.IOException;
import java.net.URL;
import java.util.Locale;
import java.util.ResourceBundle;
import boundles.Messages;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Menu;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class CargolistLoginController implements Initializable
{
private static final Locale ENGLISH = new Locale("en", "EN"), GERMAN = new Locale("de", "DE");
@FXML
private PasswordField pwdPassword;
@FXML
private Button btnLogin;
@FXML
private Text txtPassword;
@FXML
Menu menuFile, menuSettings;
@Override
public void initialize(URL arg0, ResourceBundle arg1)
{
setTextToLanguage(ENGLISH);
}
private void setTextToLanguage(Locale locale)
{
Locale.setDefault(locale);
ResourceBundle.clearCache();
txtPassword.setText(Messages.getString("CargolistLoginController.password"));
menuFile.setText(Messages.getString("CargolistLoginController.file"));
menuSettings.setText(Messages.getString("CargolistLoginController.settings"));
System.out.println(Messages.getString("CargolistLoginController.file"));
}
public void login(ActionEvent event)
{
setTextToLanguage(GERMAN);
}
public void disconnect(ActionEvent event)
{
System.exit(0);
}
}
meine Messages Class:
Code:
package boundles;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Messages
{
private static String BUNDLE_NAME = "boundles.messages";
private static ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private Messages()
{
}
public static String getString(String key)
{
RESOURCE_BUNDLE.clearCache();
try
{
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e)
{
return '!' + key + '!';
}
}
}