繁体   English   中英

如何更改 JSplitPane 中拆分栏的样式?

[英]How can I change the style of the split bar in a JSplitPane?

我在我的一些面板中使用JSplitPane ,但是它们有点厚,尤其是当您显示其中的一些面板时。

是否可以将这些条形设计成更细的样式,例如带箭头的线,甚至只是一条线?

你可以使用setDividerSize来改变它的宽度。 其默认值为 10。完整示例:

public class SplitPaneTest extends JFrame {
    public SplitPaneTest() {
        super("test");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        JPanel left = new JPanel();
        JPanel right = new JPanel();

        JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right);
        System.out.println(sp.getDividerSize()); //Prints 10
        sp.setDividerSize(1);

        add(sp, BorderLayout.CENTER);
        pack();
        setLocationRelativeTo(null);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            new SplitPaneTest().setVisible(true);
        });
    }
}

然而,外观和感觉能够改变它的外观,因为它们改变了它的UI 如果上述解决方案对您不起作用,您将不得不弄乱它的 UI。 例如,在我的一个应用程序中,我不需要任何线条(在使用 Windows 外观和感觉时),因此为了使其不可见,我必须:

sp.setUI(new BasicSplitPaneUI() {
    @Override
    public BasicSplitPaneDivider createDefaultDivider() {
        return new BasicSplitPaneDivider(this) {
            private static final long serialVersionUID = -6000773723083732304L;

            @Override
            public void paint(Graphics g) {
                //Divider gets no painting
            }
        };
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM