Component must have a valid peer

PuhuvatBanaanit

Hei!

Mulla tuli tälläinen virhe ilmoitus:

Exception in thread "Display" java.lang.IllegalStateException: Component must have a valid peer
at java.awt.Component$FlipBufferStrategy.createBuffers(Unknown Source)
at java.awt.Component$FlipBufferStrategy.(Unknown Source)
at java.awt.Component$FlipSubRegionBufferStrategy.(Unknown Source)
at java.awt.Component.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)
at java.awt.Component.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)
at dragonEscape.Level1.render(Level1.java:37)
at dragonEscape.Level1.run(Level1.java:154)
at java.lang.Thread.run(Unknown Source)

Mun Level1 Classin sisältö:

package dragonEscape;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferStrategy;
import java.awt.image.ImageObserver;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class Level1 extends Canvas implements Runnable {

static GameLoop gl = new GameLoop();

public static int x = gl.getX();
public static int y = gl.getY();

public static boolean jumpping = gl.jumpping;
public static boolean falling = true;
public static double forward = 1;

public Image MetalBlock = new ImageIcon(this.getClass().getResource("MetalBlock.png")).getImage();
public Image Charracter = new ImageIcon(this.getClass().getResource("Poro.png")).getImage();
public void update() {
System.out.println("Leveys: " x " Korkeus: " y);

}

public void render() {
BufferStrategy bs = getBufferStrategy();
if(bs == null) {
createBufferStrategy(3);
return;
}

Graphics g = bs.getDrawGraphics();
Color bgcolor = new Color(169,169,169);
g.setColor(bgcolor);
g.fillRect(0, 0, 1000, 1000);
g.drawImage(MetalBlock, -5, 430, this);
g.drawImage(MetalBlock, -5, 376, this);
g.drawImage(MetalBlock, -5, 322, this);
g.drawImage(MetalBlock, -5, 430, this);
g.drawImage(MetalBlock, -5, 430, this);
g.drawImage(MetalBlock, -5, 430, this);
g.drawImage(MetalBlock, 43, 268, this);
g.drawImage(MetalBlock, 91, 268, this);
g.drawImage(MetalBlock, 139, 268, this);
g.drawImage(MetalBlock, 187, 268, this);
g.drawImage(MetalBlock, 235, 268, this);
g.drawImage(MetalBlock, 283, 268, this);
g.drawImage(MetalBlock, 331, 268, this);
g.drawImage(MetalBlock, 379, 268, this);

g.drawImage(MetalBlock, 427, 268, this);
g.drawImage(MetalBlock, 475, 268, this);
g.drawImage(MetalBlock, 523, 268, this);

g.drawImage(MetalBlock, 571, 268, this);
g.drawImage(MetalBlock, 619, 268, this);
g.drawImage(MetalBlock, 715, 268, this);
g.drawImage(MetalBlock, -5, 268, this);
g.drawImage(MetalBlock, 43, 430,
this);
g.drawImage(MetalBlock, 91, 430, this);
g.drawImage(MetalBlock, 139, 430, this);
g.drawImage(MetalBlock, 139, 376, this);
g.drawImage(MetalBlock, 187, 430, this);
g.drawImage(MetalBlock, 235, 430, this);
g.drawImage(MetalBlock, 283, 430, this);
g.drawImage(MetalBlock, 331, 430, this);
g.drawImage(MetalBlock, 379, 430, this);
g.drawImage(MetalBlock, 427, 430, this);
g.drawImage(MetalBlock, 475, 430, this);
g.drawImage(MetalBlock, 523, 430, this);
g.drawImage(MetalBlock, 571, 430, this);
g.drawImage(MetalBlock, 619, 430, this);
g.drawImage(MetalBlock, 715, 430, this);
g.drawImage(MetalBlock, 763, 430, this);
g.drawImage(MetalBlock, 811, 430, this);

g.drawImage(MetalBlock, 811, 52, this);
g.drawImage(MetalBlock, 811, -2, this);
g.drawImage(MetalBlock, 859, 160,this);
g.drawImage(MetalBlock, 859, 106, this);


g.drawImage(Charracter, x, y, this);
g.dispose();
repaint();
bs.show();
}

public static int width = 916;
public static int height = 487;
public static int scale = 3;

private Thread thread;
private JFrame frame;
private boolean running = false;





public synchronized void start() {
running = true;
thread = new Thread(this, "Display");
thread.start();

}

public synchronized void stop() {
running = false;
try
{
thread.join();
}catch (InterruptedException e) {
e.printStackTrace();
}
}

public void run() {

while (running){
update();
render();
jump();
fall();


}


}

}
Kiitos jos voitte auttaa :) Kumitin tosta jotain turhaa koska kaikki ei mahu!

2

148

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • foobarfoo

      internertti ehdottelee että tuo poikkeus lentää tästä getBufferStrategy(), kun et ole asettanut mitään komponenttia näkyväksi (setVisible(true)).

      • foobarfoo 2

        Ja poista nuo rivit, unohdin


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Haluaisitko nähdä

      Hänet alastomana?
      Ikävä
      90
      4816
    2. Nainen lopeta pakoon luikkiminen?

      Elämä ei oo peli 😔😟
      Ikävä
      29
      3404
    3. Hilirimpsistä

      Hyvää huomenta ja kivaa päivää. Ilmat viilenee. Niin myös tunteet. 🧊☕✨🍁❤️
      Ikävä
      201
      3192
    4. Älä elättele

      Toiveita enää. Ihan turhaa. Sotku mikä sotku.
      Ikävä
      51
      3037
    5. Olet täällä. Mutta ei minulle.

      Nyt olen tästä 100% varma. Satuttaa. T: V
      Ikävä
      24
      2975
    6. Miten hitsissä ulosoton asiakas?

      On tää maailma kumma, tässä haisee suuri kusetus ja ennennäkemättömän törkeä *huijaus*! Miten to.monen kieroilu on edez
      Kotimaiset julkkisjuorut
      321
      2836
    7. Kuule rakas...

      Kerrohan minulle lempivärisi niin osaan jatkaa yhtä projektia? Arvaan jo melkein kyllä toki. Olethan sinä aina niin tyyl
      Ikävä
      44
      2727
    8. Kela valvoo lasten tilejä.

      Tämä isoveli Kela kyttää jopa lasten yli 200,- euron rahat jotka on melko varmasti lahjaksi saatu. Se vaikuttaa perheen
      Yhteiskunta
      236
      2530
    9. Vieläkö sä

      Rakastat mua?❤️😔
      Ikävä
      53
      2306
    10. Törmättiin tänään

      enkä taaskaan osannut reagoida fiksusti. Menen aina lukkoon. Yksi asia on varma: tunteeni sinua kohtaan ovat edelleen v
      Ikävä
      25
      2296
    Aihe