0
私のJFrameは常に白と黒で点滅していますが、色は黒にしか設定できません。私はそれがwhile(running){}ビットと関係していると思います。JFrame画面が白と黒で点滅しています
私はそれを閉じるまで、それは永遠に白と黒に変わります。私は本当に何が起こっているのかわかりません。私はちょうどJFrameを使い始めたので、間違ったコードを入れてしまったと確信しています。
public class Game extends Canvas implements Runnable {
private static final long serialVersionUID = 1L;
public static int width = 300;
public static int height = width/16 * 9;
public static int scale = 3;
public static boolean running = false;
private Thread thread;
private JFrame frame;
public Game() {
Dimension window = new Dimension(width * scale, height * scale);
setPreferredSize(window);
frame = new JFrame();
}
public synchronized void start() {
running = true;
thread = new Thread(this, "Display");
thread.start();
}
public synchronized void stop() {
try {
running = false;
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void run() {
while (running) {
render();
}
}
public void update() {
}
public void render() {
BufferStrategy buffer = getBufferStrategy();
if (buffer == null) {
createBufferStrategy(3);
return;
}
Graphics g = buffer.getDrawGraphics();
g.setColor(Color.BLACK);
g.drawRect(0, 0, getWidth(), getHeight());
g.dispose();
buffer.show();
}
public static void main(String[] args) {
Game game = new Game();
game.frame.setResizable(false);
game.frame.setTitle("Game");
game.frame.add(game);
game.frame.pack();
game.frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
game.frame.setLocationRelativeTo(null);
game.frame.setVisible(true);
game.start();
}
}
ここにコードを記入してください。私はそれがリンクにあることを知っている、しかし彼らはルールです。 – byxor
@byxor私の投稿は主にコードなので、私はそれをすることはできません... – GoldShovel
ええ、あなたが提供しようとするべき[MCVE](http://stackoverflow.com/help/mcve)というものがあります。この「スパムコードではない」ルールは質問の質を向上させるのに役立ちます。 – byxor