java - BufferStrategy 滞后

标签 java graphics

我的桌面应用程序滞后。我认为 java.awt.image.BufferStrategy 中有问题。

    private void render() {
    BufferStrategy bs = this.getBufferStrategy();

    if (bs == null) {
        this.createBufferStrategy(3);
        return;
    }
    // drawing
    Graphics g = bs.getDrawGraphics();

    g.dispose();
    bs.show();
    Toolkit.getDefaultToolkit().sync();
}

我什至都没有开始画画。我在另一个项目中使用了同样的东西,并且它有效,例如,如果渲染方法看起来像那样,它就可以正常工作。

private void render(){
BufferStrategy bs = this.getBufferStrategy();

    if (bs == null ){
        this.createBufferStrategy(3);
        return;
    }
    // drawing
    Graphics g = bs.getDrawGraphics();
    g.setColor(Color.GRAY);
    g.fillRect(0, 0, getWidth(), getHeight());
     int row;   // Row number, from 0 to 7
     int col;   // Column number, from 0 to 7
     int x,y;   // Top-left corner of square

     for ( row = 0;  row < 8;  row++ ) {
        for ( col = 0;  col < 8;  col++) {
           x = col * 70;
           y = row * 70;
           if ( (row % 2) == (col % 2) )
              g.setColor(Color.white);
           else
              g.setColor(Color.black);
           g.fillRect(x, y, 70, 70);
        } 
     }
    g.dispose();
    bs.show();
    Toolkit.getDefaultToolkit().sync(); 
}

核心的东西是一样的。为什么第一个在相同条件下滞后?

最佳答案

尝试删除:

    for ( row = 0;  row < 8;  row++ ) {
    for ( col = 0;  col < 8;  col++) {
       x = col * 70;
       y = row * 70;
       if ( (row % 2) == (col % 2) )
          g.setColor(Color.white);
       else
          g.setColor(Color.black);
       g.fillRect(x, y, 70, 70);
    } 
 }

关于java - BufferStrategy 滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38440455/

相关文章:

java - 使用具有透明图像的 Graphics.copyArea

java - 在android中每周在Listview中填充数据

java - 在运行时用 Java 创建 n 维数组

java - 如何修复: Exception evaluating SpringEL expression

java - Java 中的笛卡尔坐标

Java 绘画问题

java - (i >>> -distance) 是如何工作的

java - 通过 SSH 远程登录

vb.net - winforms VB中绘制进度条控件的反射

c# - 如何选择特定图像,然后选择图像在 win2d Canvas 上移动?