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.
Mal wieder ein Fehler der mich leicht überfordert.
Wie ich inzwischen weiss muss einer nicht statischen Methode (logischerweise) immer ein Objekt zugeordnet sein.
Jetzt zu meiner Situation: Ich befinde mich in meinem Programm in der Klasse Fenster. Dort habe ich die Variable Menüitem vereinbart.
Nun möchte ich der Methode Menüereignis(int i) , welche sich in der Klasse Ereignis befindet, das Objekt (=Variable?) Menüereignis zuordnen.
Code:
JMenuItem[] Menüitem = new JMenuItem[Anzahl_Items+1];
//
//
//
Menüitem[i] = new JMenuItem(temp);
Ereignis.Menüitem[i].Menüereignis(k);
In der letzten Zeile kommt dann folgende Fehlermeldung:
cannot find symbol
symbol : variable Menüitem
location: class Ereignis
Daraus schließe ich, dass der Compiler in der Klasse Ereignis nach der Variablen Menüitem sucht.
Diese befindet sich aber in der Klasse Fenster.
Wie kann ich denn jetzt mein Anliegen erreichen (der Methode Menüereignis das Objekt Menüitem zuordnen)?
Zusatzinfos: In der Methode Menüereignis soll einem Menüitem ein Actionlistener hinzugefügt werden. Der Actionlistener der hinzugefügt wird ist variabel und die Anzahl der Menüitems auch (sie sind bei jedem Programmlauf individuell).
Tut mir, leid, kannst du deine Frage nochmal ausführlicher beschreiben, ich verstehe das nicht ganz. Willst du von dem Objekt, welches mit Hilfe von menuitem referenziert wird, eine Funktion aufrufen?
Auf jeden Fall solltest du "Menü" als "menu" oder "menue" schreiben, der Compiler sollte keine "ü"s akzeptieren!
Mann bist du rückständig! Gehörst wohl zu der Sorte, die am liebsten
immer noch mit Großbuchstaben und 6-Zeichen-Bezeichnern auskommen wollen :bae: :wink:
Für Projekte, die man nur für sich selbst entwickelt spricht doch nichts
dagegen eine Variable € oder ß zu nennen; halt gewöhnungsbedürftig.
Bei Klassennamen (wg. BS) und Team-Projekten sollte man sich allerdings
schon auf die Schnittmenge (englisch) beschränken, aber sonst...
Also erstmal sorry für das unverständliche Thema. Ich wollte mein Problem auf eine sehr umständliche Weise lösen. Jetzt habe ich einen eleganteren Weg gefunden und somit hat sich das Thema erledigt.
Das ist das schöne am Anfängerdasein. Man entdeckt andauernd sehr elegante Lösungen für bis dato schier unlösbare Probleme.
Beim nächsten Mal werde ich versuchen mich klarer auszudrücken. :roll:
Das geht nicht nur Anfängern so. Selbst die Gurus deren Bücher man so gerne verschlingt, lernen ständig noch dazu und denken ein Jahr später über dies und das, was sie so schrieben, wieder anders.