インターネットで 2D グラフィック ゲームを作成するためのトレーニングを見つけ、それに基づいて以下のコードを書きましたが、これをコンパイルしても何も起こりません。何も入っていないウィンドウを表示するだけです。drawString と drawLine を使用して、何かを見たいと思っていましたが、ウィンドウが空です! どうしたの ?コードが間違っていますか?または、間違った方法を使用していますか?
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends Canvas {
BufferStrategy strategy;
boolean gameRunning = true;
public Game() {
JFrame jf = new JFrame("My Graphic thingy !");
JPanel panel = (JPanel) jf.getContentPane();
panel.setPreferredSize(new Dimension(800, 600));
panel.setLayout(null);
setBounds(0, 0, 800, 600);
panel.add(this);
setIgnoreRepaint(true);
jf.pack();
jf.setResizable(false);
jf.setVisible(true);
jf.createBufferStrategy(2);
strategy = jf.getBufferStrategy();
}
public void gameLoop() {
long lastLoopTime = System.currentTimeMillis();
while (gameRunning) {
lastLoopTime = System.currentTimeMillis();
Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
g.setColor(Color.black);
g.fillRect(0, 0, 800, 600);
g.drawString("HellO", 12,12);
g.drawLine(10, 10, 30, 30);
g.dispose();
strategy.show();
try {
Thread.sleep(2000);
} catch (Exception e) {
}
}
}
public static void main(String[] args) {
Game g = new Game();
g.gameLoop();
}
}