Hi,
komm gerad net weiter. hab versucht in mein prog ne menuleiste zu implementieren. allerdings weiß ich net wo und wie ich die sichtbar bekomme.
ich bekomme folgenden fehler:
java.lang.Error: Unresolved compilation problem:
The field menuBar is not visible
at Suchen.<init>(Suchen.java:202)
at Suchen.main(Suchen.java:216)
Exception in thread "main"
und des is der code:
Code:
public static JMenu makeMenu(Object parent, Object[] items, Object target)
{
JMenu m = null;
if(parent instanceof JMenu)
m = (JMenu)parent;
else if(parent instanceof String)
m = new JMenu((String)parent);
else
return null;
for(int i=0; i<items.length; i++)
{
if(items[i]==null)
m.addSeparator();
else
m.add(makeMenuItem(items[i], target));
}
return m;
}
public static JMenuItem makeMenuItem(Object item, Object target)
{
JMenuItem r = null;
if(item instanceof String)
r = new JMenuItem((String)item);
else if(item instanceof JMenuItem)
r = (JMenuItem)item;
else
return null;
if(target instanceof ActionListener)
r.addActionListener((ActionListener)target);
return r;
}
Code:
menuBar.add(makeMenu("Bearbeiten", new Object[]
{
"Ausschneiden", "Kopieren", "Einfügen", null, makeMenu("Optionen", new
Object[]
{
"Einfügen", "Überschreiben", "Schreibgeschützt"
},
this)
},
this));
}
bei:
Code:
menuBar.add(makeMenu("Bearbeiten", new Object[]
unterstreicht er mir menuBar und sagt es sei net visible ... :cry:
hab auch scho versucht menuBar.setVisible(true); aber auch da wird menuBar unterstrichen!
Prinzipiell setzt man den JMenuBar mit setJMenuBar(JMenuBar b) "visible"
Wobei ich nicht glaube, dass dies den Fehler bei dir lösen wird. Denn das "visible" setzten ist nicht unbedingt notwendig (gut man sieht in dann nicht....)
Aber beim zusammenbauen des Menüs spielt das keine Rolle, ausserdem passiert das in der Regel nachher!
Im Prinzip nachdem man das Menü zusammengebaut hat!
Daher sollte das kein Problem sein. Sehe mich aber bei deinen Methoden nicht wirklich durch.... (soll aber nicht heissen, dass sie schlech sind, für mich einfach etwas zu kompliziert zum durchblicken)
not visible heißt, dass du von dieser Stelle aus nicht auf das Object zugreifen kannst, zum beispiel weil es in einer anderen Klasse mit private definiert ist. Zeig mal die Definition von menuBar, liegt sie in der selben klasse wie der aufruf der add-methode?