2013-05-03 76 views
1

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

+1

我的猜测是,这可能是一个操作系统特定的问题,需要JNI或JNA来解决。 – 2013-05-03 22:08:07

回答

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); 
+0

感谢这似乎工作,但是什么使它50%更暗 – 2013-05-03 22:11:00

+0

@JoshSobel我更新了我的答案 – nullptr 2013-05-03 22:12:11

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来改变黑暗。