Как использовать макеты границ?

В настоящее время я работаю над макетами в Java. Я пытаюсь комбинировать разные макеты. Итак, я создал экран входа в систему, используя Spring Layout, GridLayout и Border Layout. MainFrame (JFrame) использует GridLayout. GridLayout состоит из 2 панелей (северная панель и основная панель). Основная панель состоит из Jlabel, JTextfield и JButton, с которыми у меня нет проблем. Моя проблема в северной панели, которая использует макет границы. Он содержит JLabel (lblWelcome). Я пытался поместить метку в центр панели с помощью Border Layout, но она все еще выравнивается по левому краю. Это приведенный ниже код:

  JLabel lblWelcome = new JLabel("Welcome To The Login Screen");
  JPanel northPanel = new JPanel(new BorderLayout());
  northPanel.setBackground(Color.green);
  northPanel.add(lblWelcome, BorderLayout.CENTER);

Экран входа:

Как использовать макеты границ?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
58
1

Ответы 1

Ваш JLabel на самом деле правильно центрирован, но его текст - нет.

Просто измените его создание на:

JLabel lblWelcome = new JLabel("Welcome To The Login Screen", SwingConstants.CENTER);

Но я действительно не увидел никакой разницы в моем коде выше, когда я изменил его на Border Layout.LINE_START. У меня был тот же результат, когда я использовал Border Layout.LINE_START и Border Layout.CENTER. Любая идея, почему?

user11270733 28.03.2019 10:55

Это может быть нормальным поведением, так как вы добавляете к нему только один компонент, он занимает все пространство.

Arnaud 28.03.2019 11:51

Другие вопросы по теме