2011-10-04 54 views
14

我想打電話給setBackgroundJPanel,使之我JFrame的顏色相匹配,但顏色是一些如何比我鍵入亮。物質的外觀和感覺是讓我的顏色更明亮嗎?

我已經嘗試設置HSB,RGB ,十六進制代碼,他們都給我相同的顏色,我的顏色更明亮的版本。

不知道如何獲得我想要的顏色?

編輯:

我從Photoshop中獲得我的顏色。我查找正確的顏色(我想要的)並複製HSB RGB或HEX代碼。它看起來應該在Photoshop中,但Java給我一個更亮的顏色? enter image description here

我已經使用了Java代碼:

Color color = new Color(0x94b3c7); 

    jpanel.setBackground(color); 
+11

Java讓你更明亮:) – dacwe

+7

你需要提供一個[SSCCE](http://sscce.org)。 – aioobe

+1

您對標題滿意,但您*需要*提供示例(如aioobe註釋)*和*需要告訴我們您從哪裏獲得價值,*您選擇了哪種顏色以及*爲什麼您*認爲它應該看起來與它所做的不同。它是否具有Alpha值? –

回答

11

物質是「着色」你的背景顏色,試圖增加一些主題的顏色。如果你使用不同的皮膚,你會得到不同的結果。例如,秋天的皮膚會讓事情變得非常橙。通過將客戶端屬性org.pushingpixels.substance.api.SubstanceLookAndFeel#COLORIZATION_FACTOR設置爲1.0,可以在每個組件的基礎上對組件進行更改。例如:

frame.putClientProperty(SubstanceLookAndFeel.COLORIZATION_FACTOR, 1.0) 

這將指示背景畫家使用用戶指定的背景顏色的100%,而不是使用顏色的50%。

這也可以全局設置...

UIManager.put(SubstanceLookAndFeel.COLORIZATION_FACTOR, 1.0); 

再次,受到每個組件覆蓋。如果沒有設置,默認的着色因子是0.5

+0

太棒了!馬上就會測試它,最接近我會在這個問題上得到一個答案,我想。 – Handsken

6

這SSCCE顯示的顏色你的Photoshop樣品中:

public class ColorTest { 

    public static void main(String[] args) { 
     JLabel label = new JLabel("Java Color"); 
     label.setFont(label.getFont().deriveFont(20f)); 
     label.setForeground(Color.WHITE); 
     label.setBackground(new Color(0x94b3c7)); 
     label.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); 
     label.setOpaque(true); 

     JPanel jpanel = new JPanel(); 
     jpanel.setOpaque(true); 
     jpanel.add(label); 
     jpanel.setBackground(Color.GREEN); 

     JFrame frame = new JFrame(); 
     frame.setContentPane(jpanel); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 
} 

這或許有助於揭示你如何,你應該在顏色設置爲得到你想要的東西?

編輯:現在添加不透明的明確設置來嘗試解決物質L & F問題。

+1

太棒了!我試過你的代碼,並且我得到了正確的顏色。它在我的代碼中花了一些時間,但我認爲我發現了這個問題。 我爲我的JFrame使用皮膚: 'import org.pushingpixels.substance.api.skin.SubstanceBusinessBlueSteelLookAndFeel;' – Handsken

+0

而當我不使用更好看的JFrame它的作品,但後來我不需要它的工作。對這個問題不滿意:( – Handsken

+1

這可能是一個「不透明」的問題,我修改了我的示例代碼,在JPanel和JLabel上都包含了對opaque的設置,面板現在應該是綠色的,標籤爲想要的顏色(0x94b3c7) –

3

所以我發現了這個問題。這實際上有點令人討厭,我可能應該在問題中加入這個,但我從來沒有想過這是造成問題的原因。使用一種叫做Substance.api從網頁http://www.pushing-pixels.org

及其對GUI一個colorskin,我的目的是改變JFrame的顏色

硒IM,但insted的我改變了整個顏色的證明。

所以如果有人知道如何改變JFrame Color,hawla at me! :)

這是強盜代碼:

public static void main(String[] args) { 

     JFrame.setDefaultLookAndFeelDecorated(true); 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(new SubstanceRavenLookAndFeel()); 

       } catch (Exception e) { 
       }