物质外观和感觉让我的颜色更亮?

Han*_*ken 14 java swing jpanel look-and-feel substance

我正试着打电话setBackground给它JPanel,以便它与我的颜色相匹配JFrame,但是颜色比我输入的颜色要亮一些.

我已经尝试过设置HSB,RGB,HEX代码,它们都给我相同的颜色,更亮我的颜色版本.

不太清楚如何获得我想要的颜色?

编辑:

我从Photoshop中获取颜色.我查找正确的颜色(我想要的)并复制HSB RGB或HEX代码.看起来它应该在Photoshop中,但java给我一个更明亮的颜色?在此输入图像描述

我用过java代码:

Color color = new Color(0x94b3c7); 

    jpanel.setBackground(color);
Run Code Online (Sandbox Code Playgroud)

she*_*non 11

物质正在"着色"你的背景颜色,试图添加一些主题的颜色.如果你使用不同的皮肤,你会得到不同的结果.例如,秋天的皮肤会使东西变成橙色.这可以每个组件的基础部件上由设置客户端属性来改变org.pushingpixels.substance.api.SubstanceLookAndFeel#COLORIZATION_FACTOR1.0.例如:

frame.putClientProperty(SubstanceLookAndFeel.COLORIZATION_FACTOR, 1.0)
Run Code Online (Sandbox Code Playgroud)

这将指示背景画家使用100%的用户指定背景颜色,而不是使用50%的颜色.

这也可以全局设置......

UIManager.put(SubstanceLookAndFeel.COLORIZATION_FACTOR, 1.0);
Run Code Online (Sandbox Code Playgroud)

再次,取决于每个组件的覆盖.如果未设置,则默认着色因子为0.5.


Ste*_*eod 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

也许这有助于向您揭示如何设置颜色以获得您想要的颜色?

编辑:现在添加了opaque的显式设置以尝试解决物质L&F问题.