JLabel setLocation not working?(JLabel setLocation 不起作用?)
问题描述
这是我写的代码:
super("Add contact");
setLayout(new FlowLayout());
IPAddress = new JLabel("IP Address");
IPAddress.setLocation(1000, 100);
ImageIcon ii=new ImageIcon(getClass().getResource("Add.png"));
JLabel image = new JLabel(ii);
image.setSize(100, 100);
image.setLocation(500, 100);
add(image);
add(IPAddress);
setSize(500,150);
}
推荐答案
没错.布局管理器负责根据布局管理器的规则设置组件的位置.因此,在您的情况下,FlowLayout 将覆盖组件的位置.
That is correct. The layout manager is responsible for setting the location of a component based on the rules of the layout manager. So in your case the FlowLayout will override the location of the component.
您不应该对组件的位置进行硬编码.如果有人使用小于 1024 X 768 的分辨率怎么办?该组件永远不会显示.
You should never hardcode the location of a component. What if somebody is using resolution less then 1024 X 768? The component will never show.
您也不应该设置组件的大小.每个组件都有一个首选尺寸.在带有图像的标签的情况下,首选大小将是图像的大小.
You should also never set the size of a component. Every component has a preferred size. In the case of label with the image, the preferred size will be the size of the image.
阅读布局管理器并使用适当的布局管理器或布局组合经理来实现您想要的布局.
Read up on Layout Managers and use the appropriate layout manager or combination of layout managers to achieve your desired layout.
这篇关于JLabel setLocation 不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:JLabel setLocation 不起作用?


基础教程推荐
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01