Как я могу выровнять один элемент по правому краю, а другой по левому краю панели JPanel? - PullRequest
0 голосов
/ 06 мая 2020

Я создал JPanel и добавил в него два JButtons. Я установил макет панели как FlowLayout. Я хочу, чтобы один JButton находился слева от JFrame, а другой JButton - справа.

Я пробовал это, но он выдает IllegalArgumentException:

        JPanel mainPanel = new JPanel(new FlowLayout());

        JButton login = new JButton("Login");
        JButton register = new JButton("Register");

        mainPanel.add(register, FlowLayout.RIGHT);
        mainPanel.add(login, FlowLayout.LEFT);

Могу ли я сделать это с помощью FlowLayout? Какой макет заставит его работать?

1 Ответ

1 голос
/ 06 мая 2020
mainPanel.add(register, FlowLayout.RIGHT);
mainPanel.add(login, FlowLayout.LEFT);

Эти переменные FlowLayout используются не так. Они используются как свойства менеджера компоновки, а не как ограничение для метода add (…). Для получения дополнительной информации прочтите FlowLayout API.

Я хочу, чтобы одна кнопка JButton располагалась слева от JFrame, а другая кнопка JButton - справа. Могу ли я сделать это с помощью FlowLayout?

Нет.

Какой макет заставит его работать?

Вы можете использовать панель с:

  1. BorderLayout - добавьте одну кнопку к BorderLayout.LINE_START и одну к BorderLayout.LINE_END
  2. BoxLayout - добавьте Box.createHorizontalGlue() между двумя кнопками.

Прочтите раздел из учебника Swing на Менеджеры компоновки для получения дополнительной информации и примеров по каждому из вышеупомянутых менеджеров компоновки.

...