将JLabel放置在JPanel上的特定x,y坐标处

我试图将一系列JLabel放置在JPanel上的特定X和Y坐标上(并设置其高度和宽度)。无论我做什么,每个标签都会立即跳到上一个标签的右侧,并且具有与所有其他标签完全相同的尺寸。

现在,我的Jpanel位于网格布局中。我尝试了绝对布局(非法参数异常结果),自由设计(没有标签出现),流程布局(所有内容都被压缩到中间)以及其他一些内容。

不知道我需要做些什么才能使这项工作。有人可以帮忙吗?谢谢!

JLabel lbl1 = new JLabel("label 1");

JLabel lbl2 = new JLabel("label 2");

JLabel lbl3 = new JLabel("label 3");

JLabel lbl4 = new JLabel("label 4");

JLabel lbl5 = new JLabel("label 5");

myPanel.add(lbl1);

myPanel.add(lbl2);

myPanel.add(lbl3);

myPanel.add(lbl4);

myPanel.add(lbl5);

lbl1.setLocation(27, 20);

lbl2.setLocation(123, 20);

lbl3.setLocation(273, 20);

lbl4.setLocation(363, 20);

lbl5.setLocation(453, 20);

lbl1.setSize(86, 14);

lbl2.setSize(140, 14);

lbl3.setSize(80, 14);

lbl4.setSize(80, 14);

lbl5.setSize(130, 14);

回答:

您必须将容器的Layout设置为null:

myPanel.setLayout(null);

不过,最好还是看看Matisse布局管理器,我想它现在称为GroupLayout。绝对定位的主要问题是窗口更改大小时会发生什么。

以上是 将JLabel放置在JPanel上的特定x,y坐标处 的全部内容, 来源链接: utcz.com/qa/399190.html

回到顶部