Sprache im GUI ändern

Status
Nicht offen für weitere Antworten.

lukasgo

Mitglied
Hallo,

Ich habe mittlerweile schon herausgefunden wie ich die Sprache im GUI ändern kann. Jetzt hab ich in einem JMenue drei RadioButtons für drei verschiedene Sprachen, ich hab für jeden Button eine ActionPerformed Methode, wie kann ich jetzt bei einem Klick auf die Sprache die Beschriftungen der Buttons und Labels ändern?

mfg
lukasgo
 
Hallo,

Ich habe mittlerweile schon herausgefunden wie ich die Sprache im GUI ändern kann. Jetzt hab ich in einem JMenue drei RadioButtons für drei verschiedene Sprachen, ich hab für jeden Button eine ActionPerformed Methode, wie kann ich jetzt bei einem Klick auf die Sprache die Beschriftungen der Buttons und Labels ändern?

mfg
lukasgo

Mal so grob geschätzt. Den RBs nen ActionListener adden. Wenn einer gedrückt wird die Methode zum Sprache wechseln aufrufen...
Weiß aba ned ob es da nen ActionListener gibt...


EDIT:

Ja geht:

Java:
public class RBTest extends JFrame implements ActionListener{
	private static final long serialVersionUID = 1L;
	private JRadioButton rb1 = null;
	public static void main(String[] args) {
		new RBTest();
	}
	public RBTest(){
		JPanel pane = new JPanel();
		rb1 = new JRadioButton("HALLO");
		rb1.addActionListener(this);
		pane.add(rb1, BorderLayout.CENTER);
	}
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == rb1) {
			System.out.println("HI");
		}
	}
}

Sehr unschön. Aba was erwartet man nach 2 Minuten ^^
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

Ich habe mittlerweile schon herausgefunden wie ich die Sprache im GUI ändern kann. Jetzt hab ich in einem JMenue drei RadioButtons für drei verschiedene Sprachen, ich hab für jeden Button eine ActionPerformed Methode, wie kann ich jetzt bei einem Klick auf die Sprache die Beschriftungen der Buttons und Labels ändern?

mfg
lukasgo


So einfach ist das nicht, du musst das alles schon selbst organisieren
http://www.java-forum.org/java-basics-anfaenger-themen/80920-buttons-um-sprache-zu-aendern.html
 
Ich würde sowas in etwa so lösen. Vielleicht gibt es aber bessere Lösungsmöglichkeiten dafür die ich nicht kenne.

Java:
ActionListener listener = new ActionListener()
{
	public void actionPerformed(ActionEvent e)
	{
		Properties prop = new Properties();
		properties.loadFromXML(new File(("data/language/" + (JRadioButton)g.getSource()).getText() + ".properties"));

		button1.setTest(properties.getProperty("Button1"));
		// ...
		label1.setTest(properties.getProperty("Label1"));
		// ...
	}
};

JRadioButton deutsch = new JRadioButton("Deutsch");
deutsch.addActionListener(listener);// Daten stehen in der Datei '/data/language/Deutsch.properties'

JRadioButton englisch = new JRadioButton("Englisch");
englisch.addActionListener(listener);// Daten stehen in der Datei '/data/language/Englisch.properties'

PS: Code nicht geprüft und bestimmt fehlerhaft
 
Letztlich ist das fast nur über ein eigenes Observer System zu lösen. Alle Elemente die irgendwie Text darstellen müssen ein Interface implementieren und irgendwo global registriert und benachrichtigt werden.
Letztlich ist das so viel Arbeit, das es in den meisten Fällen sinnvoller ist einen Neustart der Anwendung vorzuschreiben.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben