0
어떤 이유에서든, 내가 트립플 버퍼를 만들려고 할 때 오류가 발생합니다. 이것은 BufferStratrgy 클래스를 처음 사용하는 것이므로, 하고있어. 처음으로 BufferStrategy 클래스를 사용하면 무언가가 작동하지 않습니다.
package com.valgriz.main;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends Canvas implements Runnable {
public static JFrame frame = new JFrame();
public Thread thread = new Thread(this);
private final int SCALE = 4;
public static void main(String[] args) {
frame.add(new Main());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(360, 480);
frame.setTitle("8ddddd");
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
}
public Main() {
thread.start();
}
public void update() {
}
public void render() {
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(3);
return;
}
Graphics g = bs.getDrawGraphics();
g.setColor(Color.black);
g.fillRect(0, 0, getWidth(), getHeight());
g.dispose();
bs.show();
}
public void run() {
while (true) {
update();
render();
}
}
}
이
은 내가 오류입니다 : 기본적으로Exception in thread "Thread-1" java.lang.IllegalStateException: Component must have a valid peer
at java.awt.Component$FlipBufferStrategy.createBuffers(Unknown Source)
at java.awt.Component$FlipBufferStrategy.<init>(Unknown Source)
at java.awt.Component$FlipSubRegionBufferStrategy.<init>(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 com.valgriz.main.Main.render(Main.java:37)
at com.valgriz.main.Main.run(Main.java:50)
at java.lang.Thread.run(Unknown Source)
를 스레드를 시작할 수 있습니다. 이것은'스레드'와 EDT 사이의 경쟁 조건입니다 – MadProgrammer