首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么JLabel在使用SpringLayout时有零高度?

为什么JLabel在使用SpringLayout时有零高度?
EN

Stack Overflow用户
提问于 2017-08-14 18:10:15
回答 1查看 157关注 0票数 0

我是Java设计的新手,我尝试使用SpringLayout创建表单。我将JLabel放在JFrame中,添加了一些约束。我需要JLabel,以JPanel宽度为单位。但它的高度是零。宽度太小了。

下面是代码片段:

代码语言:javascript
复制
imageContainer = new JLabel();
imageContainer.setBorder(BorderFactory.createLineBorder(Color.BLACK));

filterButton = new JButton("Filter");
filterButton.addActionListener(filter);

layout.putConstraint(SpringLayout.WEST, imageContainer, 5, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.NORTH, imageContainer, 5, SpringLayout.NORTH, this);
layout.putConstraint(SpringLayout.EAST, imageContainer, 5, SpringLayout.EAST, this);

layout.putConstraint(SpringLayout.WEST, filterButton, 5, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.NORTH, filterButton, 5, SpringLayout.SOUTH, imageContainer);
layout.putConstraint(SpringLayout.SOUTH, filterButton, 5, SpringLayout.SOUTH, this);

这是结果

我哪里出错了?如何将JLabel大小扩展到父容器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 16:37:16

我的问题不在JLablel。我试图在约束中使用这个,但实际上它是不正确的。你需要像这样的容器:

代码语言:javascript
复制
Container contentPane = this.getContentPane();

之后,您可以在约束中使用contentPane:

代码语言:javascript
复制
layout.putConstraint(SpringLayout.WEST, imageContainer, 5, SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.NORTH, imageContainer, 5, SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.EAST, imageContainer, -5, SpringLayout.EAST, contentPane);
layout.putConstraint(SpringLayout.SOUTH, imageContainer, -5, SpringLayout.NORTH, filterButton);

layout.putConstraint(SpringLayout.WEST, filterButton, 5, SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.SOUTH, filterButton, -5, SpringLayout.SOUTH, contentPane);

还有这份工作。

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

https://stackoverflow.com/questions/45680478

复制
相关文章

相似问题

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