non-static variable this cannot be referenced from a static

0

oto fragment kodu

JMenuItem wczytaj = new JMenuItem("Wczytaj Plan");
plik.add(wczytaj);
wczytaj.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent zdarzenie)
{
String plan = JOptionPane.showInputDialog("Podaj plik");
panel_JPanel.rysuj_Plan(plan);
repaint();

  }
 });

dodaje anonimowego sluchacza do jednego z menu, ktory ma wywolac metode z panelu :

public static void rysuj_Plan(String sciezka)
{
obraz = Toolkit.getDefaultToolkit().getImage(sciezka);
MediaTracker trop = new MediaTracker(this);
trop.addImage(obraz, 0);
try {trop.waitForID(0);}
catch (InterruptedException exception) {}
}

otrzymuje bład : non-static variable this cannot be referenced from a static

co jest przyczyna i jak sie tego pozbyc ?

z góry dziekuje, pozdrawiam

0

Nie mozesz w metodzie statycznej uzywac slowa this, bo nie istnieje w tym momencie zaden obiekt - metoda static jest potencjalnie wywolywana dla klasy, nie obiektu.

Oczywiscie jak sie chcesz pozbyc, to najlatwiej nie robic tej metody jako statycznej.

pozdrawiam
johny

1 użytkowników online, w tym zalogowanych: 0, gości: 1