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.
ich habe zwei Klassen. In der einen erzeuge ich ein JFrame mit JMenuBar und JMenu. In einer anderen Klasse habe ich JMenuItem´s erzeugt. Jetzt möchte ich gerne aus der JFrame (mit JMenuBar und JMenu) auf die MenuItem-Klasse zugreifen um die Items in mein JMenu einzufügen, aber ich bekomme immer diese Meldung
Code:
The method add(JMenuItem) in the type JMenu is not applicable for the arguments
(Main_MenuItem)
Ich habe auch eine main-Klasse in der ich die JFrame-Klasse aufrufen kann und es klappt auch alles.
Ich weiß einfach nicht mehr weiter. Muss ich vielleicht eine Methde schreiben, wie get/set oder ewtas ähnliches ???:L
Beide sind im gleiche Package (auch wenn nicht müsste es doch gehen). Ich möchte gerne die JMenuItems unabhängig machen, damit andere JFrames bzw. JMenu´s auch darauf zugreifen und mit anderen werten initialisieren können. ist doch der Sinn von OOP, oder???
Ich kann also nur vererben, mehr nicht. Kann ich denn nicht zwei unabhängige Klasses haben? Also eine in der nur Button´s Instanziert sind und eine in der nur MenuItems sind (ohne dass die voneinander erben)??
Wenn das nur mit Vererbung geht, muss ich also z.B. in der Superklasse das Hauptframe erstellen. In Subklasse die Buttons und in der nächsten Klasse die MenuItem usw...Und von der letzten Klasse erzeuge ich dann meine Instanzin der main-Klasse für mein fertiges Frame, in der dann alle Daten/buttons usw.enthalten sind??
Wenn ich aber ein neues Frame mit anderen Daten bzw. mit weniger Buttons erstellen möchte, dann gehe ich genauso vor, wie oben beschrieben???
Nein, du musst von JMenuItem erben wenn du den Code so verwenden willst.
Wenn die add Methode von JMenu ein JMenuItem erwartet, dann kannst du doch nicht einfach *irgendwas* übergeben was kein JMenuItem ist.
Ich kann also nicht einfache import xyzklasse_item schreiben, eine Instanz in der Klasse JMenu bilden und dann einfach die Instanz mit der add-Methode der JMenu-Instanz übergeben, damit sie diese ins Menu aufnimmt??
Natürlich nicht!
Bei Vererbung spricht man auch von einer 'ist ein' Beziehung. Du erzeugst jedoch nur eine Instanz, das wird auch 'hat ein' Beziehung genannt.
Deine Klasse hat also ein JMenuItem, ist aber selbst keins und ist daher auch kein gültiger Parameter für die add Methode.