改变jframe的亮度

时间:2013-05-03 22:01:47

标签: java swing jframe alpha-transparency screen-brightness

我有一个程序,它以全屏独占模式在jframe中运行。我试图改变jframe的亮度。我想知道我将如何实现这一点。我认为有可能改变被绘制到jframe的图像的所有颜色并使它们更亮,但它仍然不会改变屏幕的实际亮度。程序通常如何实现这样的东西。

2 个答案:

答案 0 :(得分:2)

在绘制循环结束时:

g.setColor(new Color(0, 0, 0, 0.5f)); // 50% darker (change to 0.25f for 25% darker)
g.fillRect(0, 0, width, height);

答案 1 :(得分:1)

我不确定这是不是最好的方法,但它确实有效。 覆盖JPanel的public void paint(Graphics g)方法,然后首先调用super.paint(g);并在其上方绘制一个透明的黑色矩形。

这样的事情:

private static Color BG = new Color(0, 0, 0, 100);

@Override
public void paint(Graphics g) {
    super.paint(g);
    g2.setColor(BG);
    g.fillRect(0, 0, getWidth(), getHeight());
    g.dispose();
}

使用新值而不是100更改颜色以更改暗度。