Как установить положение JLabel 130px рядом с существующим? - PullRequest
0 голосов
/ 19 сентября 2018

Я создаю новый ярлык, который я хочу разместить точно на 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);

Я не получаю никаких ошибок, но даже если мои ярлыки созданы.Они не появляются в нужном месте.

Кто-нибудь знает, что я могу сделать?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я согласен, что обычно лучше использовать LayoutManager.Тем не менее, вот статья, опубликованная Oracle, в которой описывается, как это сделать: Обойтись без менеджера макета (абсолютное позиционирование)

0 голосов
/ 19 сентября 2018

Код, который вы опубликовали, не отображает проблему.Пожалуйста, дайте пример кода, который может повторить вашу проблему.

Чтобы решить вашу проблему, если вы устанавливаете положение элемента вручную (setBounds), вам нужно сначала установить макет контейнера нулевым, а во-вторых, вам нужно установитьразмер панели, куда вы добавляете эти метки.

1.

this.setLayout(null);

2.

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

...