JMenu auf JComponent?

Status
Nicht offen für weitere Antworten.

Marce

Mitglied
Hi zusammen,
ich würde gern ein JMenu auf ein JComponent haun, nur fehlt mir da irgendwie die Methode ".setJMenuBar", die mir bei JFrames zur verfügung steht.
Ist es möglich ein JMenu auf ein JComponent zu machen, oder nicht?
(Ich hab mir die Methode ".setJMenuBar" des JFrames noch nicht näher angesehen, aber notfalls schreib ich sie selber, bzw schreib sie ab.)
 
PFUI!!

Und nochmal: PFUI!

Jeder, der ein wenig von UI-Design versteht, bekommt nun Pickel an den Augen, wenn er sowas liest. Eine MenuBar gehört zu einem Programmfenster, entweder direkt (Windows) oder indirekt (AmigaOS, Mac OS (X)). An anderen Stellen hat sie nichts verloren.
 
ach ja und warum nicht? ich mein ich hab quasi 2 teile auf meinem Frame und jeder davon soll ein JMenu besitzen.
Ich nehm auch gern ein alternativen vorschlag entgegen, aber "PFUI" iss irgendwie nicht konstruktiv....
 
Aus dem einfachen Grunde, weil man User Interfaces
1. möglichst einfach und
2. user-orientiert
halten sollte. Zu 2. gehört eben auch, dass man sich an gewisse Standards hält, weil der User diese einfach auch erwartet.

Ich kann auch wie wild STRG-X, -V, -C umbelegen, aber da rasselt es beschwerden. Und welchen Sinn sollten auch zwei MenuBars haben? Eine MenuBar ist eine zentrale Anlaufstelle in einem Programm, in dem für das Programm alle möglichen Befehle und Einstellungen erreichbar sind, ggf. auch kontext-sensitiv.

Ichhalte persönlich mehr von Drop-Down-Buttons und kontekt-sensitiven PopupMenus. Frag dich doch mal selbst warum man die MenuBar nicht als normale und überall universell einsetzbare Komponenten vorgesehen hat und warum man nirgends eine Anwendung mit mehreren MenuBars sieht..

"anders" ist nicht immer "besser" 😉
 
Stell dir vor das hab ich mich auch schon gfragt, bin aber zu keiner Antwort gekommen.

Zur weiteren Erklärung warum ich das so will ist, ewil ich verschiedene Teile hab, die nacheinaner geladen werden und erst wenn der User sich eingeloggt hat soll die MenuBar zu sehen sein - und je nach dem wie er sich einloggt hat er verschiedene Menüs zur verfügung, deswegen 2 (eins für die normalen und eins für admins z.B.)

Aber die Sache mit denDrop-Down-Buttons und kontekt-sensitiven PopupMenus. guck ich mir mal an, danke.


/e ach ja falls mir einer erklären kann warum es nicht geht ein JMenu auf ein JComponent zu haun, sondern nur auf ein JFrame (außer "Das macht man halt nicht"), wär das ganz nett.
 
Marce hat gesagt.:
und je nach dem wie er sich einloggt hat er verschiedene Menüs zur verfügung, deswegen 2 (eins für die normalen und eins für admins z.B.)
Du kannst das Menu ja jenachdem wer sich eingeloggt hat unterschiedlich befüllen, aber AlArenal hat absolut recht:
2 Menus sind 'PFUI'
 
ich nehme an er will nicht beide menüs gleichzeitig darstellen, oder? wenn ja: pfui :bae:
wenn nicht:
wntweder setz die menüleiste einfach neu oder du fügst die leiste genau wie jeder andere Component mti add() hinzu :-/
 
Hm ich könnte mir das schon vorstellen dass es zwei Menus gibt aber es geht halt schonmal ganz einfachg net, weil es dafür keine Methode gibt 😉
 
Also ne natürlich sind die Menus nicht gleichzeitig sichtbar entweder oder, aber ich hatte mir das so vorgestellt und bis auf die Menus auch gelöst, dass ich beim admin die eine Klasse (erbt von JComponent) sichtbar mache (mit JMenu) und beim normalen user eine andere Klasse (erbt auch von JComponent).
Und jetzt hätte ich einfach gern das JMenu auch auf dem JComponent, wie den rest auch und möchte das halt nicht unbedingt noch im Frame1 rumfummeln...

aber so wie es aussieht gibt es ja keine möglichkeit, oder?
 
Mach dir eine abstracte Klasse die von JMenuBar erb und die alle Optionen enthält die jeder user bekommt.
Dann leitest du eine Klasse für den normal-user und eine für admins davon ab und ergänzt die Kontextspezifischen
Optionen. Je nachdem wer sich eingeloggt hat instanzierst du nun eine dieser Klassen...
 
Danke für eure Tipps.

@Wildcard: könnte ich, aber dann muss ich es immernoch auf dem Frame machen.

Ich werde es nun so lösen, dass ich es mir selber programmiere, mit Hilfe von Popupmenüs (JPopupMenu).
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben