JLabel setLocation无法正常工作?

时间:2011-09-01 00:18:00

标签: java swing jframe jlabel

这是我写的代码:

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);
}

1 个答案:

答案 0 :(得分:7)

这是正确的。布局管理器负责根据布局管理器的规则设置组件的位置。因此,在您的情况下,FlowLayout将覆盖组件的位置。

您永远不应该硬编码组件的位置。如果有人使用的分辨率低于1024 X 768怎么办?该组件永远不会显示。

您也不应该设置组件的大小。每个组件都有一个首选大小。对于带有图像的标签,首选尺寸将是图像的大小。

阅读Layout Managers并使用适当的布局管理器或布局管理器组合来实现所需的布局。