BufferStrategy是AWT的一部分,經常與Canvas類一起使用,但是它也可以與Swing UI結合而不會導致任何窗口顯示問題,或者我應該在這種情況下更好地使用純AWT嗎?謝謝你的回答。BufferStrategy和Swing合併?
回答
在我用它這樣的揮杆圖像預覽:
public class ImagePreview extends JFrame {
...
private final int BUFFERS = 2;
private BufferStrategy bufferStrategy;
...
@Override
public void paint(Graphics g) {
if (bufferStrategy == null) {
this.createBufferStrategy(BUFFERS);
this.bufferStrategy = this.getBufferStrategy();
}
...
for (int i = 0; i < BUFFERS; i++) {
Graphics2D g2Buffered = (Graphics2D) bufferStrategy.getDrawGraphics();
g2Buffered.draw(...
...
bufferStrategy.show();
g2Buffered.dispose();
}
}
}
我希望幫助。
但是如果我不想創建一個全屏應用程序並使用帶有JMenu的JFrame?在這種情況下,我應該更好地使用AWT嗎? – user1812379 2013-04-29 09:05:15
正如你可以看到它是一個帶有緩衝塗料方法的JFrame。 – Stefan 2013-04-29 13:46:04
據我所知只有java.awt.Canvas使用硬件加速,但這個類是AWT的一個子集。 – user1812379 2013-04-30 08:57:28
BufferStrategy實際上並不是AWT的一部分,即使它位於java.awt.image包中。出於歷史原因,所有與圖像相關的類都在java.awt.image包中。 BufferStrategy出現在Java 1.4中,到那時Swing是推薦的框架(與AWT相反)。
因此,您可以在Swing中使用BufferStrategy。它不需要普通的Swing組件,但它對遊戲很有用。
謝謝。這意味着BufferStrategy與重量級組件無關? BufferStrategy比內部Swing雙緩衝區更強大嗎? – user1812379 2013-06-20 10:59:57
它與重量級組件無關。 「強大」 - 取決於你的用例。 – lbalazscs 2013-06-20 17:23:58
- 1. 試圖混合Swing和LWJGL
- 2. 結合Java Swing和Java3D:併發性問題
- 3. 如何在Swing應用程序中混合Java Swing和JavaFX?
- 4. Java Swing:結合CardLayout和JLayeredPane的效果
- 5. 畫一條線混合Swing和AWT
- 6. 試圖不要混合Swing和AWT
- 7. 組合和合並
- 8. 合併和PHP
- 9. java swing組合框選擇和鏈接到其他組合框
- 10. BufferStrategy,Java中的多個異常和錯誤
- 11. BufferStrategy vs JFrame中的雙重緩衝
- 12. BufferStrategy使用非法狀態異常
- 13. 合併和合並Join任務
- 14. 合併列表和「合併」排序
- 15. Tensorflow合併尺寸和反向合併
- 16. Swing - 如何混合JTextField和JTextAreas並具有相同的視覺外觀?
- 17. Swing中的複合圖案
- 18. Java Swing混合窗格
- 19. java swing和sqlite
- 20. Scala,Swing和MVC
- 21. java swing和android
- 22. Java Swing和JGoodies
- 23. Java - 設計一組Swing組件並動態添加集合
- 24. 如何將數據從Swing GUI合併到XML模板文件?
- 25. 爲什麼在Java中使用帶swing定時器的BufferStrategy時,此空指針異常?
- 26. 合併.hover()和.replaceWith()
- 27. Git和合並時
- 28. PRISM和Caliburn合併
- 29. 合併$ .get和$ .ready
- 30. 合併$或$和MongoDB
這個問題背後的動機是什麼? – 2013-04-28 15:17:25
默認情況下Swing是雙緩衝的,所以通常沒有理由使用BufferStrategy。 – camickr 2013-04-28 17:13:54
我讀過BufferStrategy要快得多。 – user1812379 2013-04-29 09:01:56