有个setdividerlacation()方法,setdividerlacation(0.1)怎么和setdividerlacation(0.5)一样啊,运行后没任何变化,为什么?怎么才能设置成我想要的比例.

解决方案 »

  1.   

    因为你在组件显示之前就设了位置,那样是不行的,你得在整个界面显示出来,再设定setdividerlacation(0.5),(应该在你把FRAME设为VISLBLE(TRUE)之后设定)就起作用了,你试一试
      

  2.   

    import java.awt.BorderLayout;
    import java.awt.event.ComponentAdapter;
    import java.awt.event.ComponentEvent;import javax.swing.JFrame;
    import javax.swing.JSplitPane;public class T {
    public static void main(String[] args) {
    final JSplitPane splitPane = new JSplitPane();
    splitPane.addComponentListener(new ComponentAdapter() {
    @Override
    public void componentResized(ComponentEvent e)
    {
    splitPane.setDividerLocation(0.7);
    }
    });

    JFrame f = new JFrame();
    f.getContentPane().add(splitPane, BorderLayout.CENTER);
    f.setSize(300, 300);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);

    splitPane.setDividerLocation(0.7);
    }
    }
      

  3.   

    如果你多大都是0.7, 为什么要用SplitPane?
      

  4.   

    那当最大时 splitPane.setDividerLocation(0.7)再设置一下,可能还要用到UPDATEUI();