Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правильный подход к проектированию интерфейсов? 
V
    Опции темы
Killer_13
  Дата 15.7.2011, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



По моим нескольким темам видно, что я сейчас борюсь с ЛейоутМенеджерами при постройке интерфейса.
Хочу задать вопрос на счет логики построения. Правильно ли я понимаю?!
Например строим форму в ней мне хочется все окно разбить тремя панелями в ряд. тогда я на например на JFrame ставлю FlowLayout, потом в одной панели добавляю 50 кнопок сверху вниз, для этой панели добавляю BoxLayout с Y_AXIS, в другой панели хочу по своему разместить еще несколько панелей и в них тоже элементы, тогда например беру для второй панели GraidBagLayout и так д....
Правильно я это понимаю?
А чтоб компоненты были нужной мне высоты и ширины обязательно для каждого компонента писать setPreferredSize,setMinimumSize? Можно так - сделал панель необходимых размеров - бросил туда компонент и он занял всю рабочую область панели?
Спасибо.
PM MAIL   Вверх
dorogoyIV
Дата 15.7.2011, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Killer_13 @  15.7.2011,  13:14 Найти цитируемый пост)
Можно так - сделал панель необходимых размеров - бросил туда компонент и он занял всю рабочую область панели?

можно
Код

JPanel newPanel = new JPanel(new BorderLayout());
newPanel.add(new killer_13_Component());
add(newPanel);


вообще то много нюансов...
потренируешься, разберешься...  smile 
PM MAIL   Вверх
Killer_13
Дата 15.7.2011, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Ой, как вы мне здорово помогли, простая вещь, у меня почему то сразу сложилось впечатление, что BorderLayout разбивает всегда на 5 частей, блин, я не дочитал, что если один компонент, то он так делает, теперь уже просветляется, уже помаленьку раскладываю по полочкам, за буду оптимизировать код. smile Спасибоооо.
А как на счет вопроса? Я понимаю, что много нюансов, но подход такой правильный? smile
PM MAIL   Вверх
dorogoyIV
Дата 15.7.2011, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Killer_13 @  15.7.2011,  14:19 Найти цитируемый пост)
А как на счет вопроса?

я бы посоветовал хорошенько изучить BorderLayout and FlowLayout, и пока не лезть в навороченные менеджеры (этих двух вполне хватает...)
PM MAIL   Вверх
dorogoyIV
Дата 15.7.2011, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Killer_13 @  15.7.2011,  14:19 Найти цитируемый пост)
но подход такой правильный?

тут по моему - твори все, что, хочешь
layoutmeneger загрузится во время запуска приложения, потом в памяти будет висеть его слушатель (...Listener), так, что, ресурсов много не сожрет...
PM MAIL   Вверх
COVD
Дата 16.7.2011, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Killer, а вы осваиваете лэйауты вручную? 10-ю пальцами по клавиатуре? Я намекаю на альтернативу - дизайнер интерфейсов. Например, в Нетбинс. Поставили лэйаут и сразу посмотрели его поведение. Использование дизайнеров и есть "Правильный подход к проектированию интерфейсов". Использование дизайнера приводит к созданию большого количества вложенных панелей. И действительно можно ограничиниться малым количеством лейаутов. Получается избыточно (кода), но код генерит компьютер.
 
PM MAIL   Вверх
Killer_13
  Дата 16.7.2011, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Да, я осваиваю "лэйауты" вручную, 10 пальцами. smile Раньше пользовался НетБинсом, сейчас спрыгнул на Еклипс. Во первых не люблю когда не знаю что за код в программе, тоисть когда дизайнер сам генерирует код. Во вторых, принцип то понятен, осталось несколько раз закодить, а если начну с дизайнера интерфейсов, то скорее всего у меня не будет понимания. А так, уже можно сказать разобрался с Border,Flow,Spring,BoxLayots-ами. Еще нужно потренироваться с выравниванием BoxLay. Несколько раз вперемешку и тот и другой по использовал и все, тем более есть книги, статьи. Ну помучился денек другой, ну заспамил чуток форумы своими вопросами, зато сейчас чувствую результат, в голове выстраивается картинка с помощью которого Лейоута лучше собирать в кучку элементы интерфейса.
PM MAIL   Вверх
dorogoyIV
Дата 16.7.2011, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



осталось самому свой написать...

на форуме где то видел CircleLayout (компоненты расположены по окружности)

мне когда то такой нужен был:
VerticalLayout

PM MAIL   Вверх
COVD
Дата 16.7.2011, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Цитата

Использование дизайнеров и есть "Правильный подход к проектированию интерфейсов". 


Сам себя поправлю. smile  

Подходов - два. И оба правильные. 

Один подход - вручную. Получается компактный код, минимум панелей. Но требуется виртуозное владение лэйаутами. Возможно применение экзотических лэйаутов или самописных. 
Второй - использование дизайнера. Получается много вложенных панелей, простые лэйауты. Сгенерированный код состоит из большого числа стандартных конструкций. Смотреть его не интересно и редактировать невозможно.

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

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.