JSplitPane splitting 50% precisely

后端 未结 4 1008
悲&欢浪女
悲&欢浪女 2021-02-03 23:24

In Swing, what\'s the best way to make the JSplitPane to split two jpanels with 50% size each.

It looks like if I don\'t set preferred sizes on the panels it always make

4条回答
  •  没有蜡笔的小新
    2021-02-04 00:06

    You should use setDividerLocation(double proportionalLocation) to determine the initial space distribution of the JSplitPane, and then call setResizeWeight(double) with the same value to ensure that the panes are resized in proportion.

    Also, be aware: Calling setDividerLocation(double) before the JSplitPane is visible will not work correctly, as the space calculation is based on the Component's current size. Instead you need to involve a nasty hack, such as overriding the JPanel's paint method that contains the JSplitPane:

    private boolean painted;
    
    @Override
    public void paint(Graphics g) {
        super.paint(g);
    
        if (!painted) {
            painted = true;
            splitPane.setDividerLocation(0.25);
        }
    }
    

提交回复
热议问题