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_FACTOR到1.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.
此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问题.