Exception warum?

J

JimCrackma

Mitglied
Hallo,
hab noch nicht viel mit Java gemacht und wollte erstmal ein kleines Tutorial probieren.
Soweit so gut. Paar variablen, paar Klassen definiert. Alles verständlich, bis auf paar import Funktionen.
Nun bekomme ich beim Ausführen folgendes Problem.


Code:
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
    at java.awt.Container.checkNotAWindow(Container.java:492)
    at java.awt.Container.addImpl(Container.java:1093)
    at java.awt.Container.add(Container.java:419)
    at pack1.Gui.<init>(Gui.java:20)
    at pack1.main.main(main.java:6)

um was gehts hier? Seltsam finde ich auch, dass es keinerlei Verweis auf die Fehlerhafte Stelle im Code gibt.

Kann wer helfen?

Danke
 
J

JimCrackma

Mitglied
ist doch ein guter Verweis
stimmt. Hab ich nicht richtig gelesen.

Dann hier mal der Code...

Java:
package pack1;
import javax.swing.JFrame;


public class Gui {

    public Gui() {
        Var.jf1 =new JFrame();
        Var.jf1.setSize(Var.screen_with , Var.screen_height);
        Var.jf1.setLocationRelativeTo(null);
        Var.jf1.setLayout(null);
        Var.jf1.setTitle("Supercooles Spiel");
        Var.jf1.requestFocus();
        Var.jf1.setResizable(false);
        Var.jf1.setVisible(true);
    
    
        Var.lbl1 = new label();
        Var.lbl1.setBounds(0, 0, Var.screen_with, Var.screen_height);
        Var.lbl1.add(Var.jf1);
    }
}

label
Java:
package pack1;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JLabel;

public class label extends JLabel {
    private static final long serialVersionUID = 1L;

    public void paintComponents(Graphics g) {
        super.paintComponents(g);
        Graphics2D g2d = (Graphics2D) g;
     
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.drawImage(Var.bg1, 0, Var.backgroundY1, 800, 600, null );
        g.drawImage(Var.bg2, 0, Var.backgroundY2, 800, 600, null );
    }
}

liegt es vllt an dem public void paintComponents(Graphics g)? Im Tutorial ist es eigentlich als protected deklariert, aber die IDE meckert ich solle es zu public ändern. Wenn ich die Zeile auskommentiere, wirft es keinen Fehler -> lädt aber auch kein Bild.

Edit: Natürlich müssen die Parameter für das hinzufügen verdreht werden!! -> lädt aber immernoch auch kein Bild.
 
Zuletzt bearbeitet:
T

thecain

Top Contributor
Für die Auswahl davon ja schon, bzw er kann ein anderes nehmen. Zum Lernen ist es auf jeden Fall ungeeignet
 
J

JimCrackma

Mitglied
@Tobias-nrw @thecain Okay Danke euch beiden.
Ich schau mir's mal an. Werd mir aber trotzdem noch einen Kopf machen, weshalb die doofe protected Klasse nicht aktzeptiert wird und die Bilder nicht geladen werden.
 
Robat

Robat

Top Contributor
Das mit der Spieleprogrammierung solltest du definitiv lassen. Bevor man mit gui Programmierung anfängt sollte man die Java Basics verstanden haben und von selber merken, dass diese Tutotial, was leider immer noch im Netz seinen Lauf nimmt, ungeeignet ist (ums mal nett auszudrücken).
Also liebt gemeinter Tipp: GUI weglegen, Grundlagenbuch (oder Tutorial) hernehmen und anfangen zu lernen und zu verstehen
 

Ähnliche Java Themen

Anzeige

Neue Themen


Oben