为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

侃侃尔雅 2023-09-20 16:34:52
我JSplitPane在一些面板中使用了 s,但它们有点厚,特别是当你显示其中一些面板时。是否可以将这些条形设计为更细的样式,例如带箭头的线,甚至只是一条线?
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

您可以使用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

            }

        };

    }

});


查看完整回答
反对 回复 2023-09-20
  • 1 回答
  • 0 关注
  • 58 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信