如何为JSeparator绘制一条线时获取默认颜色

时间:2015-01-18 05:18:32

标签: java swing

我覆盖 JSeparator paintComponent(Graphics g)方法,以便在需要时获得更粗的线条和不同的颜色。

但我无法获得原始默认颜色。如果以下代码中的colornull,则颜色会变为黑色,在我的情况下我不喜欢它。

                int width = this.getSize().width;
                Graphics2D g2 = (Graphics2D) g;
                if (thickness > 0)
                {
                    g2.setStroke(new BasicStroke(thickness));
                }
                if (color != null)
                {
                    g2.setColor(color);
                }
                g2.drawLine(startPos, 0, width - endPos, 0); 

原始默认颜色不是黑色。您可以从附加的屏幕截图中看到这一点。较短和较长的行是通过调用super.paintComponent(g)绘制的原始分隔符。当colornull时,上面的代码绘制了较粗和较短的分隔符。

那我怎样才能获得原始的默认颜色?我尝试从 getForeground() getBackground() getColor()调用color。但没有一个是原始默认颜色

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用UIManager获取默认颜色。

查看UIManager Defaults以获取Swing组件的默认属性列表