variablen uebergabe ??

Status
Nicht offen für weitere Antworten.

MASTERII

Mitglied
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

Code:
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:
Code:
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!
 
Hey,

entwerder Du setzt vor Deine Variablen endDatei und saveDatei ein "static", oder Du übergibst Deinem ActionListener eine Referenz Deines Frames, mit der Du dann auf die Menueinträge zugreifen kannst.
Die Fehlermeldung besagt, dass Du versuchst, eine "nichtstatische" (Aufruf objekt.variable) Variable in einem statischen Kontext (Aufruf Klasse.variable) anzusprechen.

Grüße,
Mick
 
sorry nochmal ich ,
irgenwie hab ich heute ne hirnbremse ...
wie genau habe ich es zu verstehen wenn du sagst "oder Du übergibst Deinem ActionListener eine Referenz Deines Frames, mit der Du dann auf die Menueinträge zugreifen kannst. "?

Bzw. wie muss der quellcode grundlegend aussehen wenn ich einem ausserhalb der klasse befindlichen ActionListener befähigen will aktionen zu interpretieren?? (also wie wende ich die im Actionlistener befindliche methode in meiner main class an ) ?

irgenwie fuehle ich mich heute als haette ich das erste mal was von java gehoert :-(

danke fuer die hilfe schonmal ...

mfg
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben