GroupLayout: стоит ли учиться? - PullRequest
       36

GroupLayout: стоит ли учиться?

10 голосов
/ 13 февраля 2009

Я относительно новичок в Java (особенно в Swing), и недавно я делал довольно простые приложения, изучая их по ходу работы. Последний содержит множество компонентов форм, таких как JLabels, JTextFields, JButtons и т. Д. И т. Д. Все они были размещены в NetBeans с использованием визуального компоновщика. Я должен сказать, что на самом деле я не обращаюсь к NetBeans, а просто проектирую графический интерфейс и копирую код прямо в Eclipse.

Мой вопрос: стоит ли очень хорошо понимать GroupLayout и кодирование вручную (и, следовательно, иметь больший контроль над моим GUI) или просто продолжать работать как есть?

Ответы [ 5 ]

11 голосов
/ 13 февраля 2009

Я бы сказал, что стоит потратить некоторое время, чтобы понять GroupLayout хотя бы потому, что всегда полезно понять, что делает ваша IDE. Знание того, что происходит за кулисами, на самом деле делает вас более гибким, потому что если вы окажетесь в ситуации, когда у вас нет доступа к NetBeans, вы будете знать, как скопировать макет, который он создал бы для вас. Кроме того, после того, как вы получите достаточный опыт, вы, вероятно, сэкономите время в целом. Часто вы можете разработать простой графический интерфейс пользователя быстрее, чем с помощью визуального редактора, особенно учитывая время, которое требуется вам для копирования и вставки кода из Netbeans в Eclipse.

И, конечно, изучение того, как использовать GroupLayout вручную, также облегчит вам переход к любому из других менеджеров компоновки, предлагаемых Java, что, в свою очередь, может привести к упрощению кода и экономии времени.

10 голосов
/ 13 февраля 2009

GroupLayout на самом деле не был предназначен для ручного кодирования; это намного, намного более многословно, чем любой другой менеджер раскладки (за исключением, возможно, GridBagLayout). Поскольку вы говорите, что вы новичок в Swing, я предлагаю начать с базовых менеджеров макетов (BorderLayout и FlowLayout); Вы можете использовать их в NetBeans, щелкнув правой кнопкой мыши панель или фрейм и выбрав «Установить макет». После того, как вы ознакомитесь с ними, я предлагаю вам проверить MiGLayout.

Чтобы ответить на ваш другой вопрос: мне кажется, что конструктор форм NetBeans похож на калькулятор; Это замечательный инструмент, если вы уже знаете основы, но вы никогда не научитесь ничему, если просто используете его в качестве костыля.

3 голосов
/ 24 ноября 2011

GroupLayout стоит научиться использовать программно.

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

groupLayout.setAutoCreateGaps(true);
groupLayout.setAutoCreateContainerGaps(true);

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

1 голос
/ 13 февраля 2009

Большинство более сложных менеджеров компоновки не предназначены для ручного кодирования. Вы можете сделать это, но у вас, вероятно, будут проблемы с пониманием вашего собственного макета через несколько месяцев. GroupLayout не является исключением, и, что еще хуже, он совсем не интуитивно понятен, вам приходится совмещать свое мышление, переводя макет в термины GroupLayout.

По моему мнению, эти менеджеры не стоит изучать. GridBagLayout - худший из всех. У него больше возможностей, чем вы можете себе представить, и они, кажется, никогда не делают то, что вы думаете, они делают. MiGLayout очень мощный, достаточно интуитивно понятный и в основном делает то, что вы думаете, он делает, но я все равно буду утверждать, что он слишком мощный и слишком сложный для него, и для пользы программиста. GroupLayout не такой мощный, не такой интуитивно понятный и не стоит хлопот.

Мой совет за годы разработки Java GUI и его обслуживания - изучить и использовать самый мощный менеджер раскладок, который вы можете освоить за два часа и который вы никогда не забудете, а затем разметить свой GUI с помощью вложенных контейнеров с помощью этого менеджера раскладки и базовая BorderLayout / GridLayout / FlowLayout / BoxLayout.

0 голосов
/ 16 декабря 2012

Если вы склонны к стилю программы VB, вы тратите время на GroupLayouts. В противном случае попробуйте разобраться в GridBagLayout Manager с подходящими примерами. Это лучшее для тех, кто хочет, чтобы каждый компонент графического интерфейса находился под нашим контролем пера (мы должны писать, а не IDE). Хороший Java-разработчик должен уделять время объектам графического интерфейса и бизнес-объектам и должен уметь разделять их. L.Sankaranarayanan.

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