Hallo zusammen,
ich habe in meinem JFrame eine JMenuBar, die ich dynamisch bei bestimmten Aktionen erweitern möchte (laden von Plugins). Dazu habe ich folgende Methode geschrieben:
[HIGHLIGHT="Java"]
private JMenuBar uniteMenuBars(JMenuBar basis, JMenuBar extension) {
JMenuBar completeBar = new JMenuBar();
for(int i=0; i<basis.getMenuCount(); i++) {
completeBar.add(basis.getMenu(i));
}
if(extension!=null) {
for(int i=0; i<extension.getMenuCount(); i++) {
completeBar.add(extension.getMenu(i));
}
}
return completeBar;
}
[/HIGHLIGHT]
Beim Debuggen habe ich allerdings festgestellt, dass getMenu(int index) mir nicht nur das Menu an der Stelle index zurück liefert, sondern, dass das Menu auch aus der MenuBar entfernt wird. Das heißt sowohl basis als auch extension im obigen Code sind nach einmaligem Aufrufen der Methode leer. Habe ich da einen Denkfehler?
ich habe in meinem JFrame eine JMenuBar, die ich dynamisch bei bestimmten Aktionen erweitern möchte (laden von Plugins). Dazu habe ich folgende Methode geschrieben:
[HIGHLIGHT="Java"]
private JMenuBar uniteMenuBars(JMenuBar basis, JMenuBar extension) {
JMenuBar completeBar = new JMenuBar();
for(int i=0; i<basis.getMenuCount(); i++) {
completeBar.add(basis.getMenu(i));
}
if(extension!=null) {
for(int i=0; i<extension.getMenuCount(); i++) {
completeBar.add(extension.getMenu(i));
}
}
return completeBar;
}
[/HIGHLIGHT]
Beim Debuggen habe ich allerdings festgestellt, dass getMenu(int index) mir nicht nur das Menu an der Stelle index zurück liefert, sondern, dass das Menu auch aus der MenuBar entfernt wird. Das heißt sowohl basis als auch extension im obigen Code sind nach einmaligem Aufrufen der Methode leer. Habe ich da einen Denkfehler?