Home
/
JavaForum
/
Beginner
Infos
|
Features
|
Gold-Edition
|
Kundenservice
java
Übersicht
Forum
-
Beginner
-
Java allgemein
-
JDBC
-
JNI
-
Networking
-
Online-Ressourcen
-
Swing + AWT
-
XML
-
Meckerecke
Mitglieder
LOGIN
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
5.008 User online
1 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 2744 von 2963 (93%)
Autor
TiSch
Datum
26.11.03, 14:30
Betreff
AW: Non Static variable cannont be referenced to a static content...
Hallo,
Du mußt die Quelle(src) noch zum eigentlichen Typ casten, dann bist Du nicht mehr im 'static-context' und hast die Referenz auf das Original-Objekt und dessen Methoden.
Also: JMenuItem item=(JMenuItem)src;
Über klassenname.objektvariable kann man nur auf statische (Klassen-)Variablen zugreifen, die für alle Instanzen gelten.
Falls Du von außen auf eine Instanzvariable einer anderen Klasse zugreifen möchtest brauchst Du die Referenz der entsprechenden Instanz.
Dann kannst Du entweder direkt(public-Variable) oder besser über getter und setter-Methoden auf die Variablen zugreifen.
in diesem Fall ist das Unsinn aber zur Verdeutlichung könntest Du bei der Initialisierung des ActionListeners in Datenverwaltung als Parameter die eigene Instanz übergeben(also this).
Dann bräuchtest Du noch einen Konstruktor in MyActionListener der ein JFrame entgegennimmt und kannst dieses Objekt dort in einer Instanzvariablen speichern(z.B.'parent' oder 'dvi' wie in Deinem Beispiel).
Darüber kannst Du dann alle Methoden oder Variablen(public) in Datenverwaltung ansprechen.
Gruß,
Tim
-----Ursprüngliche Nachricht-----
Von: Jörg [mailto:@carookee.com]
Gesendet: Mittwoch, 26. November 2003 12:41
An: Tim Schmelter
Betreff: Non Static variable cannont be referenced to a static content...
Hi, ich habe folgendes Problem.
Habe eine kleine GUI geschrieben, mit nur einer Menubar und 3 Unterpunkten. Ich habe einen ActionListener eingefügt und ne neue Klasse für den erstellt. Hier mal der Code für die Main-Class
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class DatenVerwaltung extends JFrame
{
MyActionListener myActionListener = new MyActionListener();
JMenuBar Menu = new JMenuBar();
JMenu menuDatei = new JMenu("Datei");
JMenuItem openDatei = new JMenuItem("Datei Öffnen...");
JMenuItem saveDatei = new JMenuItem("Datei Speichern...");
JMenuItem endDatei = new JMenuItem("Beenden");
public DatenVerwaltung ()
{
super("Datenverwaltung");
JPanel pane = new JPanel();
FlowLayout fl = new FlowLayout(FlowLayout.LEFT);
pane.setLayout(fl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(300,300,500,500);
pane.add(Menu);
Menu.add(menuDatei);
menuDatei.add(openDatei);
menuDatei.add(saveDatei);
menuDatei.add(endDatei);
saveDatei.addActionListener(myActionListener);
endDatei.addActionListener(myActionListener)
setContentPane(pane);
show();
}
public static void main(String[] args)
{
DatenVerwaltung dv = new DatenVerwaltung();
}
}
Und hier für den ActionListener:
import java.awt.event.*;
import java.awt.*;
public class MyActionListener implements ActionListener {
DatenVerwaltung dv1;
public void actionPerformed(ActionEvent e)
{
Object src = e.getSource();
if (src == DatenVerwaltung.saveDatei)
System.out.println("hallo");
else if (src == DatenVerwaltung.endDatei)
System.out.println("tschüss");
}
}
Die Sache ist die, das ich die Variablen(bzw. Menueinträge) "saveDatei" und "endDatei" nicht in der ActionListener Klasse verwenden kann, da dann eben diese Meldung kommt:
"Non-Static variable saveDateicannot be refferenced to a static content"
Wäre toll wenn mir das einer erklären kann!
Vielen Dank schomal!
Kostenlose und brandaktuelle Spartipps vom Profi Geldsparen.de
Jetzt
direkt abonnieren
_____
Um auf diesen Beitrag zu antworten, benutzen Sie die Antworten-Funktion Ihrer Mail-Software.
Einen neuen Beitrag im Forum
verfassen · Diesen Beitrag
online lesen · Mailingliste
Diskussionsverlauf:
Re: AW: AW: Non Static variable cannont be referenced to a static content...
Re: Non Static variable cannont be referenced to a static content...
Re: AW: Non Static variable cannont be referenced to a static content...
Re: AW: AW: Non Static variable cannont be referenced to a static content...
Non Static variable cannont be referenced to a static content...
Re: AW: Non Static variable cannont be referenced to a static content...
Re: AW: Non Static variable cannont be referenced to a static content...
AW: Non Static variable cannont be referenced to a static content...
AW: AW: Non Static variable cannont be referenced to a static content...
Auf diesen Beitrag antworten
Neuen Beitrag verfassen
Impressum
·
Datenschutz
·
AGB
·
Infos
·
Presse
Ein modernes Forum:
teamturn.com