我设置过的属性:    
jSplitPaneLeftRight.setDividerLocation(0.25);
jSplitPaneLeftRight.setDividerSize(8);
jSplitPaneLeftRight.setResizeWeight(0.25);
jSplitPaneLeftRight.setOneTouchExpandable(true);
但是不起作用,setResizeWeight还是有点用的,但是
分割条还是会移动

解决方案 »

  1.   

    1.
    不要用jSplitPaneLeftRight.setDividerLocation(0.25);
    你的意思是按%比设,可是这样设始终有问题,我以前也遇到过!
    所以你一定要按据左侧的像素数
    jSplitPaneLeftRight.setDividerLocation(int x);
    来调用!
    2.
    jSplitPaneLeftRight.dispose()就不会动了!
      

  2.   

    2 rinehart:
    "FrameMain.java": Error #: 300 : method dispose() not found in class javax.swing.JSplitPane at line 445, column 25
      

  3.   

    sorry!
    应当是disable()!
    没问题的!
      

  4.   

    disable禁止了手动移动,但是我点击其中的组件时他自动调整大小了,
    还是不行
      

  5.   

    不可能,一旦disable了,大小就不调整了!
    你设置分隔条位置了么?
    jSplitPaneLeftRight.setDividerLocation(int x);
      

  6.   

    知道类似web页面的<hr> 效果用什么组件在swing实现?
    那个一个方框中间放组件,左上角有文字的东东怎么写出来的?
      

  7.   

    1.<hr>类似的是,JSepartor
    2.
    JPanel aaa = new JPanel();
    aaa.setBorder(new TitledBorder(BorderFactory.createLineBorder(Color.white,1),"标题"));这样就可以了,其实就是Panel外面套个border!
      

  8.   

    2 rinehart:
    thx,但关于jSplitPaneLeftRight还是没法解决了,
    jSplitPaneLeftRight.setDividerLocation(int x);当然试过,
    你自己试试看好吗?
      

  9.   

    这怎么回事?
    "FrameFillProjectInfo.java": Error #: 300 : class JSepartor not found in class FrameFillProjectInfo at line 164, column 32
      

  10.   

    sorry!
    拼错了!
    JSeparator
      

  11.   

    代码给不了,太多了,
    左边一棵树,右边一个表格,当点击树节点时
    jSplitPaneLeftRight自动变动,用鼠标去拉伸又不动(disabled)
      

  12.   

    怪了,我的也是左边一棵树,右边panel,panel里面有jtextField,不管jtextField撑多大,jSplitPaneLeftRight都不会动啊!
      

  13.   

    当点击树节点时啊,你换个节点试试啊,
    另外:有没有输入ip地址的textfield啊?
      

  14.   

    不如把你的代码给我看看吧:
    [email protected]
      

  15.   

    1.换节点也没问题,我还是认为你写的有问题!
    代码不方便给你,希望理解!
    2.什么叫输入ip地址的textfield?
    如果你为了控制格式,自己可以坐!
      

  16.   

    输入ip地址的textfield就是跟windows下一样查看更改ip
    的那个输入框,有字符判别功能,里面用.分隔开四个ip段jSplitPaneLeftRight.setResizeWeight(0.25);你有没有调用??
      

  17.   

    没有!
    我跟你说了
    jSplitPaneLeftRight.setResizeWeight(0.25);
                                        ~~~~~
    必须是int的,double的不起作用!
    我反复强调,你没仔细看!
      

  18.   

    jSplitPaneLeftRight.setResizeWeight(0.25);
    的参数必须是0~1的:
    JSplitPane weight must be between 0 and 1
    我想你说的是
    jSplitPaneLeftRight.setDividerLocation(150);
    我用了int了,现在属性设置:
        jSplitPaneLeftRight.setDividerLocation(150);
        jSplitPaneLeftRight.setDividerSize(8);
        jSplitPaneLeftRight.setResizeWeight(0.25);
        jSplitPaneLeftRight.setOneTouchExpandable(true);
        jSplitPaneLeftRight.disable();
    如果没有setResizeWeight变动就更厉害了,简直看不到一边
      

  19.   

    setDividerLocation是可以用比例或者象素来定位,可往往是用比例没有效果,但请不要怀疑是JDK的问题,因为只有当jsplitpane,frame画出来以后才能用比例来定位.典型的情况是随着frame的size变动来setDividerLocation(0.5)之类,往往是来个回调就可以了.
    rinehart说double的参数没有用,用象素就可以,就是这个原因,.
      

  20.   

    问题不是比例问题了,现在的问题是Divider会移动,我
    想让他固定
      

  21.   

    怎么说不通呢!你就非要用
        jSplitPaneLeftRight.setResizeWeight(0.25);不用就不会有问题啊!
      

  22.   

    谢谢,我刚才调通了,其实不用设置那么多东西,
    因为jSplitPaneLeftRight.setBottomComponent我
    每次都更换显示不同组件所以视图会变化大小,
    scrollTable.setPreferredSize(jSplitPaneLeftRight.getBottomComponent().getPreferredSize());
    jSplitPaneLeftRight.setBottomComponent(scrollTable);
    这样就不会了,给分了!