3

我正在尝试为 JSplitPane 分隔线设置背景颜色。我已经编写了以下代码,但它似乎不起作用。

        BasicSplitPaneUI ui = (BasicSplitPaneUI) splitPane.getUI();
        BasicSplitPaneDivider divider = ui.getDivider();
        divider.setBackground(Color.decode("#FFFACD"));

我什至尝试过这里给出的建议 How to set BackGround color to a divider in JSplitPane

有人可以指出错误或让我知道任何其他方法吗?

4

3 回答 3

6

我搜索了许多帖子以更改拆分窗格的分隔线颜色。我确实找到了解决方案。

splitPane.setUI(new BasicSplitPaneUI() 
{
    @Override
    public BasicSplitPaneDivider createDefaultDivider() 
    {
        return new BasicSplitPaneDivider(this) 
        {                
            public void setBorder(Border b) {}

            @Override
            public void paint(Graphics g) 
            {
                g.setColor(Color.BLACK);
                g.fillRect(0, 0, getSize().width, getSize().height);
                super.paint(g);
            }
        };
    }
});

splitPane.setBorder(null);

使用上面的代码,我们可以设置颜色,也可以设置分隔线的边框。有关更多信息,请参阅本 教程

于 2012-11-24T14:34:58.933 回答
2

这对我有用

BasicSplitPaneDivider divider = (BasicSplitPaneDivider) splitPane.getComponent(2);
divider.setBackground(Color.black);
divider.setBorder(null);
于 2012-03-25T05:46:24.897 回答
1

您使用的是什么外观和感觉?LaF 可以而且经常会覆盖您可能设置的内容。

这可能会有所帮助http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/color.html

于 2012-03-15T18:07:51.353 回答