私はこの問題に対する答えを探し回っていますが、問題を解決する方法についての情報はほとんどありません。私が探しているのは、Graphics2D を使用して、ウィンドウ内で必要なすべてのグラフィックスを実行できるようにすることです。Graphics2D と BufferStrategy の使用についてはあまり寛大ではありません。コンピューターの GraphicsDevice を使用してフルスクリーン ウィンドウを作成するために、これらを使用する既存のコードが大量にあるからです。これは私が行ったテストですが、欠けているものがあります。
public static void main(String[] args) {
//Creates a frame and sets properties
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setResizable(true);
frame.setVisible(true);
frame.createBufferStrategy(2);
//Gets Graphics2D from the bufferstrategy
BufferStrategy s = frame.getBufferStrategy();
Graphics2D g = (Graphics2D)s.getDrawGraphics();
//Draws a background and a line for testing
g.setColor(Color.GRAY);
g.drawRect(0, 0, 500, 500);
g.setColor(Color.BLACK);
g.drawLine(50, 50, 200, 50);
//Displays the graphics to the frame
frame.update(g);
g.dispose();
s.show();
}
これを実行すると、正しいサイズに設定された空のフレームのみが作成され、エラーは発生しませんが、線と背景は表示されません。
私の推測では、フレームが更新されるコードの最後の 3 行で問題が発生していると思われます。私の混乱は、BufferStategy を使用するときに Graphics2D コンポーネントを表示する方法です... フレームを更新する必要がありますか、それとも BufferStategy を表示するだけですか? どんな助けでも大歓迎です。事前に感謝します。