我一直在四處搜尋這個問題的答案,但幾乎沒有提供有關如何解決問題的信息。我期望做的是能夠使用Graphics2D在窗口內完成我需要的所有圖形。我對Graphics2D和BufferStrategy的使用並不是很寬容,因爲我有大量的現有代碼使用這些來使用計算機GraphicsDevice製作全屏窗口。這是我做的測試,但有些東西我缺少。在窗口中使用帶有BufferStrategy的Graphics2D
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?任何幫助將不勝感激,並提前感謝您。
在http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferStrategy.html –