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将覆盖组件的位置。

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

您也应该永远不要设置组件的大小。 每个组件都有一个首选大小。 在带有图像的标签的情况下,首选尺寸将是图像的尺寸。

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