Какой метод прост в использовании для размещения компонентов в Java? - PullRequest
0 голосов
/ 27 марта 2010

Это с помощью setLocation или по макету? Можете ли вы дать мне несколько советов, как я могу легко разместить компонент Swing в рамке?

Ответы [ 3 ]

2 голосов
/ 27 марта 2010

См. http://java.sun.com/docs/books/tutorial/uiswing/layout/none.html для абсолютного позиционирования в Swing :) Однако, в основном, вы бы этого избежали и использовали правильные менеджеры по расположению. Для этого я предлагаю использовать MigLayout , который является невероятно мощным менеджером макетов (легко задавать макеты непосредственно в коде), или с дизайнером пользовательского интерфейса * Netbeans , *1007* Mattise , который использует GridBagLayout и автоматически записывает файлы .java с точками вставки для вашего собственного кода, для ответа на события пользовательского интерфейса и тому подобное.

альтернативный текст http://i.d.com.com/i/dl/media/dlimage/10/58/06/105806_large.jpeg

Пример MigLayout:

 JPanel p = new JPanel(new MigLayout("", "[right]"));

 p.add(new JLabel("General"),  "split, span, gaptop 10");
 p.add(new JSeparator(),       "growx, wrap, gaptop 10");

 p.add(new JLabel("Company"),  "gap 10");
 p.add(new JTextField(""),     "span, growx");
 p.add(new JLabel("Contact"),  "gap 10");
 p.add(new JTextField(""),     "span, growx, wrap");

 p.add(new JLabel("Propeller"),"split, span, gaptop 10");
 p.add(new JSeparator(),       "growx, wrap, gaptop 10");

 p.add(new JLabel("PTI/kW"),   "gap 10");
 p.add(new JTextField(10),     "");
 p.add(new JLabel("Power/kW"), "gap 10");
 p.add(new JTextField(10),     "wrap");
 p.add(new JLabel("R/mm"),     "gap 10");
 p.add(new JTextField(10),     "wrap");
 p.add(new JLabel("D/mm"),     "gap 10");
 p.add(new JTextField(10));
0 голосов
/ 27 марта 2010

Обязательно используйте менеджер макетов, так как тогда вы достаточно гибки, чтобы обрабатывать такие вещи, как различные макеты в зависимости от платформы (влияет на размеры кнопок) и размер шрифта. Последнее важно, если вы хотите создавать доступные приложения, поскольку у некоторых пользователей возникают проблемы с просмотром мелкого текста, и поэтому они применяют глобальный множитель к размерам шрифтов. Дополнительным бонусом является то, что вы можете легко справиться с изменением размера всего окна.

Но избегайте GridBagLayout. Он мощный, но требует много работы, чтобы он не сосал, настолько, чтобы было проще написать свой собственный макет специалиста с нуля ...

0 голосов
/ 27 марта 2010

Рекомендуемый подход заключается в использовании менеджеров компоновки для размещения компонентов в контейнере. Преимущество состоит в том, что менеджеры компоновки будут обеспечивать функциональность изменения размера или изменения положения компонентов, которые расположены рядом друг с другом при изменении размера контейнера.

Программирование всего этого поведения самостоятельно не обязательно.

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