Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
JMenuItem Kann nicht nach einem String benannt werden...
Hallo, ich habe das Problem, dass ich gerne So viele JMenuItems Erstellen Möchte wie Files im fileArray sind.
Wie es scheint ist es nicht möglich ein JMenuItem Nach einem String zu benennen, währe schön wenn mir jemand helfen kann.
Java:
for (int i = 0; i < FileClass.fileArray.length; i++) {
System.out.println (FileClass.fileArray[i]);
String MenuName = ("MenuItem" + i);
JMenuItem MenuName = new JMenuItem(FileClass.fileArray[i]);
Bar1.add(MenuName);
}
Du kannst zwei Variablen nicht gleich nennen. Du definierst eine Zeile drüber bereits die Variable MenuName.
Also eine der Variablen umbenennen. Und wenn du schon dabei bist: befolge auch die Java Naming Standards, d.h. Variablen fangen mit kleinem Buchstaben an.
for (int i = 0; i < FileClass.fileArray.length; i++) {
System.out.println (FileClass.fileArray[i]);
String menuName = ("MenuItem" + i);
JMenuItem menuItem = new JMenuItem(menuName);
Bar1.add(MenuName);
}
oder
Java:
for (int i = 0; i < FileClass.fileArray.length; i++) {
System.out.println (FileClass.fileArray[i]);
// Zeile entfernt, weil Name "MenuName" doppelt
JMenuItem menuItem = new JMenuItem(FileClass.fileArray[i]);
Bar1.add(menuItem);
}
Deine Fehlermeldung sagte jedenfalls, schlicht und einfach, dass der Name "MenuName" zweimal deklariert wurde.
Du kannst die JMenuItems doch in einem Array, einer List, Map, was auch immer speichern.
Du musst lediglich die Datenstruktur wählen, die Du brauchst. Wenn du die Zuordnung zu einem String oder einer anderen Variable brauchst, dann wäre eine Map sinnvoll.
@temi
sry, aber so habe ich das nicht gemeint
JMenuItem menuItem = new JMenuItem(FileClass.fileArray);
das in Blau Möchte ich gerne nach jedem repeat Ändern, damit man immer ein neues JMenuItem Dazukriegt
@temi
sry, aber so habe ich das nicht gemeint
JMenuItem menuItem = new JMenuItem(FileClass.fileArray);
das in Blau Möchte ich gerne nach jedem repeat Ändern, damit man immer ein neues JMenuItem Dazukriegt
Wozu? Du bekommst auch so in jedem Schleifendurchlauf ein neues JMenuItem erstellt, dass du Bar1 hinzufügen kannst. Das geht auch:
Java:
for (int i = 0; i < FileClass.fileArray.length; i++) {
System.out.println (FileClass.fileArray[i]);
Bar1.add(new JMenuItem(FileClass.fileArray[i]));
}
Es ist nicht erforderlich dafür eine spezielle Variable zu haben. Bar1 hat intern eine geeignete Datenstruktur, um die Referenzen auf die erzeugten Items aufnehmen zu können.
Map<String, JMenuItem> items = new HashMap<>();
for (int i = 0; i < FileClass.fileArray.length; i++) {
System.out.println (FileClass.fileArray[i]);
items.put("Item" + i, new JMenuItem(FileClass.fileArray[i]));
}
// Danach hast du eine Map mit vielen JMenuItems...
JMenuItem item = items.get("Item2"); // Holt "Item2" aus der Map.