Programmsprache wechseln (Labels.): Properties auslesen

Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Ich habe mir zum Thema "Properties" einige Seiten im Netz angeschaut und auch hier im Forum jedoch verstehe ich es nicht richtig wie ich automatisch zur Laufzeit die Sprache anhand der Dateien ändern kann.

Ich habe 3 Properties Dateien erzeugt (LabelsBundle.properties - Default, LabelsBundle_de.properties und LabelsBundle_fr.properties) z.B.
Code:
# blablabla
Label_Firstname = Firstname
Label_Surname = Surname

Nun habe ich auch in meinem Frame Labels definiert und eine ComboBox z.B.
Code:
private void initComponents()
{
    JLabel Label_Vorname = new JLabel();
    Label_Vorname.setText("Vorname");
    JLabel Label_Nachname = new JLabel();
    Label_Nachname.setText("Name");
    JComboBox combo = new JComboBox();
    combo.setModel(new DefaultComboBoxModel(new String[] { "de", "fr" }));
}

Die initComponents() wird dann bei starten geladen.

So nun mein Problem besteht darin, beim Aufrufen eines Elements der ComboBox müssen sich die Labels usw... ändern entsprechend was in der Properties Datei steht. Wie geht das, wie kann ich zuweisen welche Variable im Programm anhand welches Key aus der Datei geändert werden muss? Die Datei muss ich mir schonmal holen aber dann? Ich raff es net...
Code:
String path = this.getApplicationPath();
String pathnew = path.replace("\\","/");
.
.
String choice = (String) combo.getSelectedItem();
File prop = new File(pathnew/LabelsBundle_"+choice+".properties");
try {
   properties.load(new FileInputStream(prop));
} 
   catch (IOException e) {
}
 
L

Louis2

Gast
[EDITED]

Also ich habe schonmal was hingekriegt, bekomme aber eine Fehlermeldung, dass meine Properties Datein nicht gefunden werden (selbes Verzeichnis LabelsBundle.properties, LabelsBundle_de.properties und LabelsBundle_fr.properties). Was mache ich noch falsch?

Code:
private void initComponents() {
Label_Name1.setText(displayValue(supportedLocales, "Label_Name1")); // damit soll Label 1 auf den Wert in der Property Datei gesetzt, supportedLocales ist die Sprache
}

static String displayValue(Locale currentLocale, String key) {
        ResourceBundle labels = ResourceBundle.getBundle("LabelsBundle",currentLocale);
        String value = labels.getString(key);
        return value;
}
    
public Frame() {
Object[] possibleValues = { "de", "en", "fr" };
selectedValue = JOptionPane.showInputDialog(null, "Please choose your language", "Language choice", 
                JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]);        
choice = new Locale((String) selectedValue);
supportedLocales = choice; 
initComponents();
}

Fehlermeldung:
Code:
java.util.MissingResourceException: Can't find bundle for base name LabelsBundle, locale de

        at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:804)

        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:773)

        at java.util.ResourceBundle.getBundle(ResourceBundle.java:538)

        at test.Frame.displayValue(Frame.java:215)

        at test.Frame.initComponents(Frame.java:67)

        at test.Frame.<init>(Frame.java:227)

        at test.Frame$1.run(Frame.java:238)

        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)

        at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)

        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S GUI Frame wechseln Java Basics - Anfänger-Themen 15
J Dateiverzeichnis wechseln Java Basics - Anfänger-Themen 4
D Apache POI Tabelle wechseln Java Basics - Anfänger-Themen 2
A GUI Fensterinhalt wechseln Java Basics - Anfänger-Themen 5
C Tabs in JTabbedPane wechseln, wenn Tabs in eigenen Klassen sind Java Basics - Anfänger-Themen 2
A Farben wechseln mit JButton Java Basics - Anfänger-Themen 2
S Erste Schritte Von JFrame in nächstes JFRame wechseln Java Basics - Anfänger-Themen 0
R JLabel imageicon jede Sekunde wechseln Java Basics - Anfänger-Themen 3
N Input/Output mit FileDialog Verzeichnis wechseln Java Basics - Anfänger-Themen 20
M Timer: period während Verlauf wechseln Java Basics - Anfänger-Themen 12
K ActionListener Klasse wechseln Java Basics - Anfänger-Themen 10
G Inhalt einer JComboBox wechseln Java Basics - Anfänger-Themen 5
G Sprache wechseln Java Basics - Anfänger-Themen 3
G Mousefocus wechseln Java Basics - Anfänger-Themen 3
L Threads wechseln Java Basics - Anfänger-Themen 4
N User wechseln? Java Basics - Anfänger-Themen 3
G in Verzeichnis auf gleicher Ebene wechseln Java Basics - Anfänger-Themen 4
zilti In Java das Verzeichnis wechseln Java Basics - Anfänger-Themen 21
S Anzuzeigende JPanel's wechseln? Java Basics - Anfänger-Themen 3
S Klassen wechseln Java Basics - Anfänger-Themen 3
S Funktion für Ziffernpositionen wechseln? Java Basics - Anfänger-Themen 2
I Wie kann man in root -User wechseln? Java Basics - Anfänger-Themen 16
D Menü soll immer da bleiben - Frames sollen wechseln Java Basics - Anfänger-Themen 3
P Button "Farbe wechseln" Java Basics - Anfänger-Themen 11
D ResourceBundle - zwischen Sprachen wechseln Java Basics - Anfänger-Themen 7
S Multiplikation von zwei Labels Java Basics - Anfänger-Themen 7
A von ArrayList in Labels schreiben Java Basics - Anfänger-Themen 19
J Bilder in Labels aktualisieren Java Basics - Anfänger-Themen 2
llabusch Interface Layout eines Labels während der Laufzeit ändern Java Basics - Anfänger-Themen 0
A Labels Inner JButton Event Erstellbar? Java Basics - Anfänger-Themen 3
I Schleifen und Labels Java Basics - Anfänger-Themen 5
MU5T4NG Input/Output mehrere Labels zusammenfassen + ändern Java Basics - Anfänger-Themen 4
J Klick auf Icon eines Labels registrieren. Java Basics - Anfänger-Themen 4
A Textfields + Labels in GridLayout(3,2) Java Basics - Anfänger-Themen 2
R Text des Labels sekündlich ändern Java Basics - Anfänger-Themen 2
hdi continue bei labels Java Basics - Anfänger-Themen 31
D Lokalisierung (Sprachvielfalt) und GUI-Labels Java Basics - Anfänger-Themen 8
Q Labels auf verschiedenen Ebenen? Java Basics - Anfänger-Themen 5
D Labels Dynamisch ? Java Basics - Anfänger-Themen 5
M Auf Panels oder Labels malen? (paint) Java Basics - Anfänger-Themen 9
F Gebasteltet Fortschrittsanzeige: Aktualisieren Labels? Java Basics - Anfänger-Themen 4
E anklicken eines Labels Java Basics - Anfänger-Themen 2
J Zuviele Textfelder und Labels Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben