gpt4 book ai didi

java - 如何使用 Nimbus L&F 更改 JSeparator 的颜色

转载 作者:行者123 更新时间:2023-12-01 09:35:08 25 4
gpt4 key购买 nike

这是我尝试根据 How to change the color of a JSeparator? 中的答案将垂直 JSeparator 的颜色从 Nimbus 默认黑色更改为红色的尝试。 :

public class TestFrame extends JFrame {

public static void main(String[] args) {

TestFrame frame = new TestFrame();
frame.setSize(200, 200);
frame.setLayout(new GridBagLayout());

for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
try {
UIManager.setLookAndFeel(info.getClassName());
} catch (ClassNotFoundException ex) {
Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);
}
break;
}
}
UIManager.put("Separator.background", Color.red);
UIManager.put("Separator.foreground", Color.red);

JSeparator separator = new JSeparator(JSeparator.VERTICAL);
separator.setPreferredSize(new Dimension(2, 100));
separator.setForeground(Color.red);
separator.setBackground(Color.red);

frame.add(separator, new GridBagConstraints());
frame.setVisible(true);

}

}

但是垂直分隔符仍然是黑色的。我应该做什么?

注意:我知道 Nimbus 是问题所在,因为我尝试不将 L&F 设置为 Nimbus,并且效果很好。另请注意,设置 Separator[Enabled].backgroundPainter 属性似乎影响了 JSeperator 但不是我想要的方式(只是更改了背景颜色与分隔线颜色)

最佳答案

我通过更改 nimbusBlueGrey 解决了这个问题Nimbus 用于派生其他颜色的颜色。将分隔符设置为不透明只会有助于更改背景颜色,但 JSeperator's有两种颜色,前景色和背景色,因此设置为不透明并更改背景颜色解决了一半的问题。 nimbusBlueGrey似乎可以处理前景色,这似乎不能用 setForegroundcolor() 覆盖。或Separator.foreground属性。

问题是改变 nimbusBlueGrey会影响许多其他成分的颜色。我不确定如何将颜色更改仅包含在 JSeperator 中。

关于java - 如何使用 Nimbus L&F 更改 JSeparator 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39046371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com