我如何制作像电视那样的静态屏幕效果?

How would I make a static screen effect like a tv would have?

我想制作一个看起来像 static on a old tv

的效果

我想要它,所以它会移动,我不想使用多个预制图像来制作效果。我如何使用单色(黑色和白色)获得这种持续约 3-5 秒的效果?

尝试使用 java.awt.Canvas class.

覆盖 canvas class 中的绘制方法,然后使用此代码生成静态:

@Override
public void paintComponent(Graphics g){
    super.paintComponent(g);
    for(int x = 0; x < getWidth(); x++){
        for(int y = 0; y < getHeight(); y++){
            int col = (int)(Math.round(Math.random()*100)%50);
            if(Math.random() > 0.5){
                col = 255 - col;
            }
            g.setColor(new Color(col, col, col);
            g.fillRect(x, y, 1, 1);
        }
    }
}

这实际上是在渲染一个 w*h 网格像素,每个像素的 r、g 和 b 颜色值的最大值为 50。这将产生颗粒状的黑灰色纹理,并且可以适应其他网格矩阵。

编辑:

  1. Canvas 更改为 JPanel,使用 paintComponent 方法。

  2. 根据随机几率使阴影更亮或更亮。