2013-05-03 78 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來改變黑暗。