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

264

    Vastaukset 2

    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. Herkkyydestä

      Toisessa ketjussa toivottiin keskustelua herkkyydestä. Aloitan omalla näkemykselläni. Mielestäni herkät ihmiset ovat l
      Sinkut
      267
      868
    2. Okei, eli olet rakastunut

      Hyvä sinä, niin minäkin.
      Ikävä
      67
      665
    3. Arvaako kukaan?

      "Humalojalla metalliromun keräyspaikalla on kulkenut pitkin kevättä ja kesää joku henkilö, joka on vienyt sieltä kymmeni
      Haapavesi
      44
      645
    4. Tuntuu pahalta meidän molempien puolesta

      Anteeksi, että olen tällainen pelkuri. En vaan usko rakkauteen enää miehen ja naisen välillä omalla kohdalla. Tiedän, et
      Ikävä
      34
      558
    5. Mikä minussa sitten

      Kiihottaa enemmän kuin muissa?
      Ikävä
      51
      497
    6. Olen kiinnostunut sinusta, en seksistä

      Vihjailuja toiseen suuntaan on tullut niin paljon, että asia on korjattava. En näe sinua esineenä, vaan hienona persoona
      Ikävä
      30
      450
    7. Onko meillä

      Kaikki hyvin? 🤨 Miehelle
      Ikävä
      30
      444
    8. En pyytele enää koskaan anteeksi mitään sinulta

      Olet ollut kohtuuttoman kylmä ja tyly tilanteeseen nähden.
      Ikävä
      45
      437
    9. Taidan lähettää kaveripyynnön

      Sulle nainen. Otan vaan rohkaisuryypyn ensin.
      Ikävä
      38
      436
    10. Mies.. rehellisesti

      Mitä haluat nyt sun elämään?
      Ikävä
      45
      427
    Aihe