Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > Layouts... |
Автор: PashaOvechkin 4.2.2008, 16:04 | ||
Привет! есть свинг фрейм (его можно посмотреть в атачменте) Фрейм уже готов, нужно его немного переделать... Layouts знаю плохо, поетому необходим совет Вот сдесь можно посмотреть код Фреима
На самом деле всё очень просто... Основной шаблон во фреиме ето -> GridBagLayout В контеинере фреима есть несколько панелек с рамкой, в каждой из них исполь зуется шабло BoxLayout. Проблема заключается в том, что ети самые панели могу содержать в себе много леиблов в столбик... А если леиблов много, метод pack(); основного темплейта фреима(GridBagLayout) сжимает всё так, что кнопки становятся узкими, не видно содержимого панелей.... Выглядит ужасно! Подскажите пожалуйста какой шаблон выбрать или какой нить другой workaround... ![]() Спасибо! |
Автор: romanarey 4.2.2008, 18:35 |
Пользуй вот это!!! Правда это работает только в 1,5 1,6, Но зато довольно просто после этого изменять все размеры и отступы!!!! http://java.sun.com/docs/books/tutorial/uiswing/layout/groupExample.html |
Автор: fixxer 5.2.2008, 10:54 |
JGoodies FormLayout адназначна! Такая форма делается как 2 пальца обасфальт |
Автор: PashaOvechkin 5.2.2008, 12:21 |
Спасибо за советы! решил проблему ![]() JGoodies ето классно, но в луче обходится средствами стандартной йдк... |
Автор: Platon 11.3.2008, 16:07 |
Разработчики Sun что издеваются над нами? Они хотят сказать, что это GroupLayout будет кто-то пользовать?! Сначала я подумал, неплохое стандартное решение, держа в голове QGroupLayout от Qt Jambi. Но приглядевшись к примеру понял, что дело-то тут совершенно пропащее. Сначала меня испугали какие-то createSequentialGroup() createParallelGroup()... увидев результат я проглатил это, т.к. очень красиво получается у них без лишних настроек, как это делается в GridBagLayout. Но потом постигло настоящее разочарование: Зачем нам формировать компоненты и вертикально и горизонтально? Кто использует стандартные выравниватели GridBagLayout, или GroupLayout? они же убивают в человеке человека!!! Добавлено через 43 секунды В общем, присоединяюсь к fixxer, JGoodies - это наше всё. |
Автор: AntonSaburov 11.3.2008, 16:23 |
Посмотри тут - http://antonsaburov.narod.ru/articles/LayoutManager.html |
Автор: Platon 11.3.2008, 16:32 |
хм, и где у вас аналог FormLayout? |
Автор: AntonSaburov 11.3.2008, 16:36 |
Не понял я вопроса. Тебе надо сделать красивую форму или что ? Если надо разобраться что надо - почитай о лейаутах и выбери то, что тебе надо. В принципе стандартных обычно хватает вполне. |
Автор: Platon 11.3.2008, 16:38 | ||
В принципе да, я в основном использую BoxLayout и BorderLayout, но когда надо создать анкету, мне просто плохо становится от того, что это можно сделать только с помощью GridBagLayout. Добавлено через 55 секунд FormLayout - это божественный менеджер выравнивания от JGoodies Добавлено через 14 минут и 1 секунду Многие согласятся, что приведенный код просто сказка для такой формочки: http://ipicture.ru/Gallery/Viewfull/862266.html
|
Автор: Platon 11.3.2008, 17:18 |
Да, я понимаю, в IDEA это тоже есть, но как-то приноровился ручками писать. |
Автор: w1nd 11.3.2008, 17:30 | ||||
Он очень незначительно отличается от GridBagLayout ;) Вам никто не мешает создать такие же методы в своём потомке GridBagConstraints, как и в CellConstraints. Кстати, из-за дурацкой идеи авторов FormLayout отсчитывать insets внутрь, можно очень здорово попортить себе нервы, встраивая друг в друга композитные компоненты на базе того же FormLayout. Ещё, кстати, эти их xy() и xywh() обнуляют другие поля - мне это кажется неудобным.
Меня бы устроило и так:
|
Автор: Platon 12.3.2008, 10:51 | ||||||
w1nd, ваши слова заставили меня задуматься ![]() Главный мой аргумент - если мы будем оформлять таблицу 7x14 то нам придется 98 раз полностью рисовать
Утомительно, не так ли? Вместо этого FormLayout предлагает нам оформить в 1 текстовую строку повдение 7 рядов, и в 1 строку поведение 14 рядов. И потом в раслабленном виде рисовать те же 98 раз:
Добавлено через 2 минуты и 41 секунду Тем не менее, я согласен работать с GBC, но надеюсь, что FormLayout когда-нибудь войдет в SDK. |
Автор: w1nd 12.3.2008, 11:16 | ||
Наилучшим вариантом был бы сплав FormLayout и GridBagLayout. Учитывая доступность исходников и того, и другого, грех не сделать ![]() ![]() |
Автор: Platon 12.3.2008, 11:50 | ||||||
w1nd, Вы меня переоцениваете *CONFUSED*
В итоге получается такой код:
|