Component must have a valid peer

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!
2268
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

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

Äänestä
  • Ja poista nuo rivit, unohdin

    Äänestä

Kommentoi aloitusta


PuhuvatBanaanit kirjoitti:

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!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu