Tach!
Eine Fehlermeldung ist auf mich zugekommen, wie es aussieht, hier:
Exception in thread „main“ java.lang.ExceptionInInitializerError
at medienverwaltung.DateienEinlesen.init(DateienEinlesen.java:81)
at medienverwaltung.DateienEinlesen.main(DateienEinlesen.java:65)
Caused by: java.util.MissingResourceException: Can’t find bundle for base name MultiMediaResources, locale de_DE
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at medienverwaltung.Konstanten.(Konstanten.java:31)
… 2 more
Ich habe eine Datei mit der Endung *.properties in gleichem Verzeichnis gespeichert, d.h.,
dass die andere Java-Dateien drin stehen.
MultiMediaResources.properties
MultiMediaResources_de_DE.porperties
Diese beiden sollen korrekt sein. Aber wieso geht das damit nicht? grümmel
Absätze aus einer Datei namens DateienEinlesen.java:
....
MenuItemHandler mih = new MenuItemHandler();
// Namen der Operationen werden aus der Klasse Konstanten gelesen
katMenu.add(this.createNewMenuItem(Konstanten.NeuKatalog, mih));
katMenu.add(this.createNewMenuItem(Konstanten.NeuBild, mih));
katMenu.add(this.createNewMenuItem(Konstanten.NeuTon, mih));
katMenu.add(this.createNewMenuItem(Konstanten.Kopie, mih));
katMenu.add(this.createNewMenuItem(Konstanten.Entfernen, mih));
katMenu.add(this.createNewMenuItem(Konstanten.Eintragen, mih));
katMenu.add(this.createNewMenuItem(Konstanten.Modifizieren, mih));
katMenu.add(this.createNewMenuItem(Konstanten.LabelName, mih));
katMenu.add(this.createNewMenuItem(Konstanten.LabelDatum, mih));
katMenu.add(this.createNewMenuItem(Konstanten.LabelBeschr, mih));
katMenu.add(this.createNewMenuItem(Konstanten.ButtonOk, mih));
katMenu.add(this.createNewMenuItem(Konstanten.ButtonAbbruch, mih));
// trage Menu in Menu-Balken ein
menuBar.add(katMenu);
....
// erzeugen eines neuen MenuItems
private JMenuItem createNewMenuItem(String name, MenuItemHandler mih){
JMenuItem result = new JMenuItem(name);
result.addActionListener(mih);
return result;
}
}
...
Und eine Datei Konstanten.java:
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
* Diese Klasse enthält die Strings, die die Menu-Operationen in
* der Verwaltungsoberfläche bezeichnen.
*/
public class Konstanten {
public static String NeuKatalog;
public static String NeuBild;
public static String NeuTon;
public static String Kopie;
public static String Entfernen;
public static String Eintragen;
public static String Modifizieren;
public static String LabelName;
public static String LabelDatum;
public static String LabelDatei;
public static String LabelBeschr;
public static String ButtonOk;
public static String ButtonAbbruch;
static {
// statischer Klassenkonstruktor, der die konkreten Werte beim
// Start der Anwendung lädt.
ResourceBundle prb = ResourceBundle.getBundle("MultiMediaResources", Locale.getDefault());
// TestAusgabe
System.out.println("erzeugt ResourceBundle mit Locale: " + Locale.getDefault());
// lese den Wert (Ressource) zu dem als ersten
// Parameter angegebenen Schluessel
NeuKatalog = setKey("NeuKatalog", prb);
NeuBild = setKey("NeuBild", prb);
NeuTon = setKey("NeuTon", prb);
Kopie = setKey("Kopie", prb);
Entfernen = setKey("Löschen", prb);
Eintragen = setKey("Einfügen", prb);
Modifizieren = setKey("Ändern", prb);
LabelName = setKey("LabelName", prb);
LabelDatum = setKey("LabelDatum", prb);
LabelDatei = setKey("LabelDatei", prb);
LabelBeschr = setKey("LabelBeschr", prb);
ButtonOk = setKey("ButtonOk", prb);
ButtonAbbruch = setKey("ButtonAbbruch", prb);
}
// Hilfsmethode zum Laden der Properties
private static String setKey(String propertyName, ResourceBundle prb) {
try {
return prb.getString(propertyName);
} catch (MissingResourceException mre) {
System.out.println("keine Resource für "+propertyName+" gefunden!");
return propertyName;
}
}
}
ResourceBundle prb = ResourceBundle.getBundle("MultiMediaResources", Locale.getDefault());
Kann das sein, dass diese nicht korrekt ist, wie „MultiMediaResources“ lautet?
Muß diese Name mit der Dateinendung .properties dazu sein?