У меня есть панель, полученная из JPanel. У меня есть пользовательский элемент управления, полученный из JLabel. Я пытаюсь сосредоточить этот пользовательский JLabel на моей панели.
Единственный способ, которым я знаю, что это будет работать, - использовать пустой макет (setLayout(null)), а затем вычислить пользовательскую точку JLabel setLocation(), чтобы она была в нужном месте.
Пользовательский JLabel физически перемещается с одной панели на эту панель в этом приложении, и я считаю, что местоположение, ранее установленное в setLocation, влияет на вещи. Однако, когда я устанавливаю его на (0,0), компонент поднимается в верхний левый угол.
 BorderLayout не работает, потому что, когда только 1 компонент предоставлен и помещен в BorderLayout.CENTER, центральный раздел расширяется, чтобы заполнить все пространство.
Пример, который я вырезал и вставил с другого сайта, использовал BoxLayout и component.setAlignmentX(Component.CENTER_ALIGNMENT). Это тоже не сработало.
Другой ответ, упомянутый выше, над панелью getInset() (я думаю, что он был вызван), но это оказалось тупиком.
До сих пор я работаю с панелью с макетом GridBagLayout, и я включаю объект GridBagConstraints, когда я вставляю пользовательский JLabel в свою панель. Однако это неэффективно. Есть ли лучший способ центрировать JLabel в моем JPanel?

