Как изменить цвет или цвет фона разделителя JSplitPane? - PullRequest
3 голосов
/ 20 января 2012

Я пытаюсь установить цвет фона для разделителя JSplitPane.Я написал следующий код, но, похоже, он не работает.

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

Я даже попробовал приведенное здесь предложение Как установить цвет BackGround для делителя в JSplitPane

Может кто-нибудь указать на ошибку или сообщить мне другой подход?

Ответы [ 3 ]

5 голосов
/ 24 ноября 2012

Я искал много постов для изменения цвета разделителя разделенной панели.И я нашел решение для этого.

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);

С помощью приведенного выше кода мы можем установить цвет, установить границу и для разделителя. Для получения дополнительной информации см. Этот учебник

2 голосов
/ 25 марта 2012

Это работает для меня

BasicSplitPaneDivider divider = (BasicSplitPaneDivider) splitPane.getComponent(2);
divider.setBackground(Color.black);
divider.setBorder(null);
1 голос
/ 15 марта 2012

Что вы используете?LaF может и часто отменяет то, что вы можете установить.

Это может помочь http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/color.html

...