carookee - group communication for you
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





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
5.255 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

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