我一直在寻找这个问题的答案,但是关于如何解决这个问题的信息很少。我想做的是能够在一个窗口中使用 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();
}
运行时,这只会创建一个设置为正确大小并且不会产生错误的空框架,但不会显示线条和背景。
我的猜测是问题源于更新框架的最后三行代码。我的困惑是如何在使用 BufferStategy 时显示 Graphics2D 组件...您仍然需要更新框架还是只需要显示 BufferStategy?任何帮助将不胜感激,并提前感谢您。