javaFX und resource boundle

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:
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 + '!';
		}
	}
}
 
Zurück