首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的JPanel中的JSeparator位置不正确

我的JPanel中的JSeparator位置不正确
EN

Stack Overflow用户
提问于 2011-06-24 05:23:14
回答 2查看 2.9K关注 0票数 1

所以我的代码如下:

代码语言:javascript
复制
JPanel mainPanel = new JPanel();

mainPanel.setBorder(new EmptyBorder(50,50,0,10));

BoxLayout layout = new BoxLayout(mainPanel, BoxLayout.Y_AXIS);
mainPanel.setLayout(layout);

JSeparator separate = new JSeparator(SwingConstants.HORIZONTAL);
mainPanel.add(separate);

mainPanel.add(new JButton());
mainPanel.add(new JButton());

我一直有的问题是,我的面板看起来不像这样:

代码语言:javascript
复制
______________
|             |
|  ------     |
|  Button     |
|  Button     |
|             |
|             |
|             |
______________

由于某种原因,它在按钮和分隔符之间放置了大量的空间,因此它看起来像:

代码语言:javascript
复制
______________
|             |
|  ------     |
|             |
|             |
|             |
|  Button     |
|  Button     |
______________

对于我的生活,我不能让按钮旁边的JSeparator,你有什么想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-24 08:30:34

BoxLayout遵循组件的最大大小。当有更多的可用空间时,组件将增长以占用额外的空间。您需要防止分隔符增长:

代码语言:javascript
复制
JSeparator separate = new JSeparator(SwingConstants.HORIZONTAL);
System.out.println(separate.getPreferredSize());
System.out.println(separate.getMaximumSize());
Dimension d = separate.getPreferredSize();
d.width = separate.getMaximumSize().width;
separate.setMaximumSize( d );
票数 4
EN

Stack Overflow用户

发布于 2011-06-24 05:30:53

如果Y对齐(来自.getAlignmentY())不同,BoxLayout往往会做一些奇怪的事情。尝试手动将路线设置为顶部。(BoxLayout中的X对齐方式也是如此。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6460780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档