如何固定JSplitPane的分隔比例??

gdsean 2001-09-27 09:08:29
点击一边组件时通常JSplitPane会自己调整大小,
如何固定JSplitPane的分隔比例??
...全文
1118 点赞 收藏 26
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gdsean 2001-09-28
问题不是比例问题了,现在的问题是Divider会移动,我
想让他固定
回复
martinzhu 2001-09-28
setDividerLocation是可以用比例或者象素来定位,可往往是用比例没有效果,但请不要怀疑是JDK的问题,因为只有当jsplitpane,frame画出来以后才能用比例来定位.典型的情况是随着frame的size变动来setDividerLocation(0.5)之类,往往是来个回调就可以了.
rinehart说double的参数没有用,用象素就可以,就是这个原因,.
回复
gdsean 2001-09-28
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变动就更厉害了,简直看不到一边


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

你就非要用
jSplitPaneLeftRight.setResizeWeight(0.25);

不用就不会有问题啊!
回复
gdsean 2001-09-27
disable禁止了手动移动,但是我点击其中的组件时他自动调整大小了,
还是不行
回复
rinehart 2001-09-27
sorry!
应当是disable()!
没问题的!
回复
gdsean 2001-09-27
2 rinehart:
"FrameMain.java": Error #: 300 : method dispose() not found in class javax.swing.JSplitPane at line 445, column 25
回复
rinehart 2001-09-27
1.
不要用jSplitPaneLeftRight.setDividerLocation(0.25);
你的意思是按%比设,可是这样设始终有问题,我以前也遇到过!
所以你一定要按据左侧的像素数
jSplitPaneLeftRight.setDividerLocation(int x);
来调用!
2.
jSplitPaneLeftRight.dispose()就不会动了!
回复
gdsean 2001-09-27
我设置过的属性:
jSplitPaneLeftRight.setDividerLocation(0.25);
jSplitPaneLeftRight.setDividerSize(8);
jSplitPaneLeftRight.setResizeWeight(0.25);
jSplitPaneLeftRight.setOneTouchExpandable(true);
但是不起作用,setResizeWeight还是有点用的,但是
分割条还是会移动
回复
hexiaofeng 2001-09-27
jSplitPane1.setDividerLocation(10);
回复
rinehart 2001-09-27
没有!
我跟你说了
jSplitPaneLeftRight.setResizeWeight(0.25);
~~~~~
必须是int的,double的不起作用!
我反复强调,你没仔细看!
回复
gdsean 2001-09-27
输入ip地址的textfield就是跟windows下一样查看更改ip
的那个输入框,有字符判别功能,里面用.分隔开四个ip段

jSplitPaneLeftRight.setResizeWeight(0.25);你有没有调用??
回复
rinehart 2001-09-27
1.换节点也没问题,我还是认为你写的有问题!
代码不方便给你,希望理解!
2.什么叫输入ip地址的textfield?
如果你为了控制格式,自己可以坐!
回复
gdsean 2001-09-27
不如把你的代码给我看看吧:
lega@21cn.com
回复
gdsean 2001-09-27
当点击树节点时啊,你换个节点试试啊,
另外:有没有输入ip地址的textfield啊?
回复
rinehart 2001-09-27
怪了,我的也是左边一棵树,右边panel,panel里面有jtextField,不管jtextField撑多大,jSplitPaneLeftRight都不会动啊!
回复
gdsean 2001-09-27
代码给不了,太多了,
左边一棵树,右边一个表格,当点击树节点时
jSplitPaneLeftRight自动变动,用鼠标去拉伸又不动(disabled)
回复
general2000 2001-09-27
gz
回复
rinehart 2001-09-27
sorry!
拼错了!
JSeparator
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2001-09-27 09:08
社区公告
暂无公告