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

JSplitPane在一些面板中使用了 s,但它们有点厚,特别是当你显示其中一些面板时。

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


侃侃尔雅
浏览 59回答 1
1回答

一只名叫tom的猫

您可以使用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            }        };    }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java