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