Регулировка положения компонентов качания - PullRequest
0 голосов
/ 15 июля 2009

У меня есть JFrame, в который мне нужно вставить JLabels, текстовые поля и JButton. Я могу это сделать, но как я могу настроить их в нужное положение, я хочу добавить одну метку и текстовое поле в одной строке, а затем метку nxt и текстовое поле в следующей строке, но они идут в одной горизонтальной линии. я использовал flowLayout с JFrame. подскажите пожалуйста как их соответственно отрегулировать. спасибо

Ответы [ 6 ]

4 голосов
/ 15 июля 2009

Ключом к распределению компонентов в контейнере в Swing является Layout Manager . Есть различные типы там. Чтобы сделать то, что вы ищете, вы можете рассмотреть GridLayout. Это довольно легко настроить. Сначала вам нужно создать макет. Следующее создаст двухколонный макет с таким количеством строк, которое вы укажете:

GridLayout gl = new GridLayout(0,2);

Затем вы применяете его к своей панели:

JPanel panel = new JPanel(gl);

Затем вы добавляете свои предметы:

panel.add(textfield1);
panel.add(button1);
panel.add(textfield2);
panel.add(button2);

GridLayout будет обрабатывать переход от строки к строке после заполнения столбцов компонентами.

0 голосов
/ 15 июля 2009

Если вы хотите иметь возможность позиционировать элементы пользовательского интерфейса в вашем приложении (почти) абсолютно, рассмотрите возможность использования приличного построителя графического интерфейса, такого как Матисс в NetBeans или Swing UI Designer в IntelliJ IDEA.

0 голосов
/ 15 июля 2009

Вы используете менеджер Swing Layout Manager по умолчанию. Если вам нужно другое поведение (что очень разумно), вам нужно использовать другой LayoutManager. Некоторые существуют как от Солнца, так и «там».

Чтобы вы могли выбирать, вам нужно знать, как они работают. Я настоятельно рекомендую использовать Учебное пособие по Java для этого:

http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

Дайте нам знать, если вам нужно больше, чем предусмотрено, например. вложенные BorderLayout's или TableLayout.

0 голосов
/ 15 июля 2009

Вам необходимо изучить различные типы раскладок, которые предоставляет свинг. Также вы можете взглянуть на FormLayout , предоставленный JGoodies. Я предпочитаю использовать это, чем разметку Swing, так как я считаю, что это легко кодировать и меньше строк кода

0 голосов
/ 15 июля 2009

GridLayout может быть тем, что вы хотите, или комбинацией GridLayout и FlowLayout. Посмотрите учебник LayoutManager , чтобы получить лучшее представление о том, когда и как использовать и комбинировать различные менеджеры макетов.

0 голосов
/ 15 июля 2009

взглянул на gridbaglayout ? Должен служить вашей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...