Interpreter-Fehler "non-static variable this cannot be referenced from a static context"

Aprendiendo

Mitglied
Hallo, alle miteinander!

Ich habe ein Problem mit meinem Code. Ich bekomme nämlich die Fehlermeldung "non-static variable this cannot be referenced from a static context".

Ich habe schon versucht, bei Google und hier im Forum mit der Suchmaschine einen Tip dazu zu finden, aber erfolglos, ich sehe immer noch nicht ein, was ich falsch mache, und die Bedeutung des Fehlers selbst verstehe ich nicht wirklich. Ich weiß, daß das ein Anfängerfehler ist, genau was ich hinsichtlich JAVA bin, ein Anfänger (auch ein Umsteiger).

Soviel ich entdecken konnte, wird das Problem dadurch verursacht, daß die Klasse meinRahmenZwo eine interne Klasse von RahmenErstellen ist. Mit der Klasse meinRahmen, die nicht intern ist, besteht kein Problem. Wieso darf meinRahmenZwo keine interne Klasse sein? 😕

Code:
package grafiken;
import javax.swing.*;

public class RahmenErstellen {

    public static void main(String[] args) {

        meinRahmen rahmen1 = new meinRahmen();
        rahmen1.setVisible(true);
        rahmen1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        meinRahmenZwo rahmen2 = new meinRahmenZwo();   // Hier bekomme ich die Fehlermeldung ...
    }

    class meinRahmenZwo extends JFrame {

        public meinRahmenZwo() {
            setSize(500, 300);
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
}

class meinRahmen extends JFrame {

    public meinRahmen() {
        setSize(500, 300);
    }
}

Danke im voraus!

Gruß
 
Zuletzt bearbeitet:
Die main-Methode ist static, sprich, sie gehört zur Klasse, und kan deshalb verwendet werden, wenn es noch gar keine Instanz der KLasse gibt. class meinRahmenZwo hat keine Modifier und ist deshalb nicht static. Um sie zu verwenden, muss es erst eine Instanz von RahmenErstellen geben. Du kannst den Konstruktor von meinRahmenZwo nur aus einer nicht-statischen Methode aus aufrufen.
 

Zurück
Oben