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

gdsean 2001-09-27 09:08:29
点击一边组件时通常JSplitPane会自己调整大小,
如何固定JSplitPane的分隔比例??
...全文
1272 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
加载更多回复(6)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧