JLabel setLocation无法正常工作?

Tus*_*ani 1 java swing jlabel jframe

这是我写的代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

cam*_*ckr 7

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

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

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

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