.addComponent(jPasswordField1)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 126, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
getContentPane().setLayout(layout);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
Рассмотрим код сгенерированный рисовалкой:
Использование визуального редактора типа Netbeans Matisse
На скриншоте видно что некоторые поля меняют ширину в зависимости от размера формы, кнопки привязаны к границам окна т.е. компоновка не является тривиальным выставлением константных размеров/положения компонентов.
Рассмотрим варианты создания форм типа этой:
В стандарной JRE содержится больше десятка классов для компоновки элементов (FlowLayout, GroupLayout и т.п.), постоянно появляются новые компоновщики типа MigLayout но ситуация не улучшается.
Почему я не могу просто добавить кнопки с полями на форму без изучения всех этих LayoutManager'ов?
Библиотека Swing появилась примерно 15 лет назад и все эти 15 лет КАЖДЫЙ кто начинает программировать на Java задаёт один и тот же вопрос:
30 августа 2011 в 12:21
Layout без layout'ов / Хабрахабр
Комментариев нет:
Отправить комментарий