如何将 JLabel 130px 的位置设置在现有的旁边?

How do I set the position of a JLabel 130px next to an existing one?

我正在创建一个新标签,我想将其精确定位在现有标签旁边 130 像素处。我不熟悉布局,宁愿绝对定位我的标签。我的代码如下:

 playerLabels[index] = new javax.swing.JLabel();
 playerLabels[index].setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/image001".png")));
 playerLabels[index].setBounds(playerLabels[index - 1].getX() + 130, playerLabels[index - 1].getY(), playerLabels[index - 1].getWidth(), playerLabels[index - 1].getHeight());

 panel.add(playerLabels[index]);
 playerLabels[index].setVisible(true);

我没有收到任何错误,但即使我的标签已创建。它们没有出现在所需的位置。

有人知道我能做什么吗?

您发布的代码不会描述问题。请提供可以重现您问题的示例代码。

为了解决您的问题,如果您手动设置元素的位置 (setBounds),您需要首先将容器布局设置为 null,其次您需要设置要添加这些 jlabel 的面板的大小。

1.

this.setLayout(null);

2.

panel.setSize(900,900); // whatever the size you need.

我同意使用 LayoutManager 通常更好。也就是说,这里有一篇 Oracle 发布的文章描述了如何做到这一点: Doing Without a Layout Manager (Absolute Positioning)