0

BufferStrategy 是 AWT 的一部分,经常与 Canvas 类一起使用,但它是否也可以与 Swing UI 结合使用而不会导致任何窗口显示问题,或者在这种情况下我应该更好地使用纯 AWT?感谢您的任何回答。

4

2 回答 2

2

BufferStrategy 并不是真正的 AWT 的一部分,即使它位于包 java.awt.image 中。由于历史原因,所有与图像相关的类都在 java.awt.image 包中。BufferStrategy 出现在 Java 1.4 中,到那时 Swing 是推荐的框架(与 AWT 相对)。

因此,您可以将 BufferStrategy 与 Swing 一起使用。普通的 Swing 组件不需要它,但它对游戏很有用。

于 2013-04-30T19:06:10.127 回答
1

在 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();
        }
    }
}

我希望这会有所帮助。

于 2013-04-28T16:00:23.487 回答