Подтвердить что ты не робот

Построение графического интерфейса в Java

Какой механизм вы предпочитаете для создания графического интерфейса: с нуля или с помощью программного обеспечения GUI?

4b9b3361

Ответ 1

Мне действительно нравится создавать графические интерфейсы с помощью GUI Builder NetBeans; дело в том, что оно довольно настраиваемо - оно позволяет вам изменить код, используемый для автоматического генерации и автоматически сгенерированного кода [не предназначенного для каламбура] (что необходимо для настраиваемых компонентов), оно также позволяет "легко" обрабатывать события и связывание. И NetBeans GUI Builder не ограничивается GroupLayout, а позволяет вам выбирать, какой LayoutManager использовать (несколько скрытая настройка в диалоговом окне свойств формы).

Но это не всегда лучший выбор; как уже говорили другие: MiG Layout - хороший выбор, когда вам нужно иметь полный контроль над своим приложением, зная каждый JLabel, каждый JButton и т.д.

Должен признаться, я предпочитаю построитель GUI Netbeans для простоты использования и просмотра WYSIWYG. Но я также думаю, что даже не имеет значения, если вы создали GUI-код вручную или с помощью GUI-Designer; добавление элементов управления/пользовательских компонентов динамически работает с обоими, делает это и работает с обоими и т.д. Единственное, что имеет значение, это то, что он работает.

(С моей точки зрения, я не вижу смысла в кодировании GUI вручную, если это можно сделать быстрее с помощью GUI-Builder, так как я не понимаю, почему нужно позаботиться о его кодировании вручную без какой-либо выгоды )

Ответ 2

Если речь идет о разработке графического интерфейса с использованием Swing, тогда IMO лучше всего закодировать все вручную без инструмента WYSIWIG.

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

Также такие инструменты, как Balsamiq, упрощают создание макетов GUI для быстрого прототипирования, если подход к бумаге и карандашу не подходит.

Ответ 3

Мое личное мнение никогда не используется визуальными редакторами. Пока в Java нет единого стандарта для создания GUI, вы окажетесь привязанным к IDE. Лучшая среда IDE для построения графического интерфейса Java за последние 10 лет несколько изменилась (интересно, сколько проектов пострадали от огромных затрат на обслуживание от перехода от JBuilder).

Для большинства приложений фактическое расположение GUI-кода, вероятно, составляет примерно 5-10% от общего количества времени, которое вы, вероятно, потратите на создание приложения в целом. Поэтому даже в два раза уменьшить это, используя конструктор, на самом деле не спасает вас в великой схеме вещей.

Принимая это вместе с отсутствием гибкости и более сложным обслуживанием, почти всегда лучше просто написать GUI вручную.

Ответ 4

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

Как и любой генератор кода, IMHO, вы не должны использовать построитель графического интерфейса, пока вы, по крайней мере, не поймете концепцию - в этом случае менеджеры макетов Swing особенно сложны.

Ответ 5

Если вы дадите мне выбор между NetBeans и by-hand, я бы определенно выбрал by-Hand. Подход NetBeans GUI не был действительно убежден. По крайней мере, в прошлый раз, когда я использовал его, он полагался на некоторые проприетарные файлы sidecar...

Ответ 6

Оба - используйте редактор WYSIWYG, чтобы заставить мяч катиться, но в конце дня вам нужно будет управлять своими элементами управления и в некоторых случаях создавать их программно во время выполнения. Eclipse имеет множество бесплатных редакторов в качестве плагинов. Перейдите на eclipse.org и просмотрите список плагинов.

Ответ 7

Вам нужно знать, как работает Swing, чтобы заставить все работать правильно. Ничего, как построить вручную, чтобы узнать, что:)

В то время как разработчик GUI Netbeans довольно хорош.

Изменить: я бы настоятельно рекомендовал пройти через Java Tutorial Swing Trail - http://java.sun.com/docs/books/tutorial/ui/index.html

Ответ 8

Посмотрите Визуальный редактор для Eclipse

Вы по-прежнему хотите понять, что делает редактор для вас.

Ответ 9

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

Кроме того, это зависит от количества форм и сложности их. Если вам нужно создать форму для каждой таблицы в базе данных, например, сторонний GUI-конструктор может быть быстрее и дешевле.

По моему опыту, он действительно отличается от проекта к проекту.

Ответ 10

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

Ответ 11

Моя компания использует Netbeans для графических интерфейсов и eclipse для обычного программирования.
Мы посмотрели, но мы не нашли никакого другого (свободного или, по крайней мере, дешевого) инструмента, который делает графические интерфейсы так же хорошо, как NetBeans.

Я использовал их с нуля с помощью обычного текстового редактора...

Ответ 12

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

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

Вторая причина - обычно быстрый и грязный интерфейс, где ядро ​​программы - это что-то другое, и пользовательский интерфейс создается обычно для аспектов управления в главном приложении, и вы являетесь основным клиентом. В этих случаях лучше всего сделать пользовательский интерфейс как можно быстрее, так как вы не хотите "тратить время" на его работу и более законно использовать редакторы WYSIWYG.

Ответ 13

Я всегда нахожу GUI-конструктор, чтобы быть хорошей идеей, чтобы начать, а затем я попал в ситуацию, когда я трачу свое время на то, чтобы фиксировать вещи своими собственными способами, а не с IDE и сделать их действительно подходящими. И не заставляйте меня начинать с грязного кода, который генерируют графические компиляторы! Следовательно, часто более эффективно строить с нуля; по крайней мере для меня...

Ответ 14

Я предпочитаю вручную кодировать GUI, чтобы я мог иметь полный контроль. Для сложных макетов я буду использовать JGoodies Form Layout. Их синтаксис для указания макета позволяет легко нарисовать GUI на бумаге, а затем передать его в код.

Я попробовал построитель GUI Netbeans и был впечатлен тем, насколько просто его использовать. Затем я посмотрел код, сгенерированный с помощью GroupLayout, и решил, что, пойдя таким образом, вы в основном запираетесь в Netbeans, чего я не хотел делать.

Ответ 15

Я начал с его кодирования вручную с помощью Swing. Теперь я использую редакторы WYSIWYG, но я думаю, что важно знать, что стоит за редактором. Также вам может потребоваться обновить код вручную, редакторы WYSIWYG часто не могут делать именно то, что вы хотите.

Ответ 16

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

Иногда я использую инструмент Eclipse Visual Builder для быстрого и грязного макета. Это генерирование кода немного страшно ИМХО. Я считаю, что Netbean Visual Editor является лучшим из доступных на данный момент (бесплатно в любом случае); тем не менее, я нахожусь в ручном графическом коде для согласованных кросс-платформенных макетов. Если вы разочарованы этими бесплатными редакторами графического интерфейса (например, я), честно говоря, просто используйте библиотеку макетов (например, MIG) и просто сделайте это самостоятельно. Сначала это будет медленно, но у вас будет намного больше контроля и меньше редакторов newonses.

Ответ 17

Это действительно зависит от того, что вы пытаетесь выполнить с помощью графического интерфейса. Когда я собирал идеи для класса Computer Science и тестирования, редактор Netbeans WYSIWYG был отличным, так как он автоматически генерирует много кода для вас. Тем не менее, я обнаружил, что вы, как правило, лучше контролируете это вручную (на Java), чем обучение Netbeans.

Ответ 18

Я попытался использовать плагин Eclipse Visual Swing, но в некоторых случаях код, который он сгенерировал, просто исчез, и я остался с экраном, полным ошибок. Во всех приложениях GUI, которые я пишу, я использую Netbeans, хотя я ненавижу код, созданный при использовании GroupLayout. Однако, если код макета не является вашей проблемой, я думаю, вы будете очень довольны скоростью разработки, которую он вам предлагает. Единственное, что вам нужно сделать, это реализовать логику событий и другую логику, которая может потребоваться.

Ответ 19

Eclipse Visual Editor - отличный выбор, потому что код, который он создает, очень прост и нет скрытой магии. Кроме того, вы можете вносить изменения вручную, и редактор будет их отражать.

Ответ 20

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

Я использую в основном конструктор GUI IntelliJ IDEA (с помощью диспетчера макетов JGoodies Forms). Это было довольно удобно для компоновки компонентов в статическом макете. Но я думаю, что, например, с помощью MiGLayout довольно легко написать код макета GUI вручную, поэтому разработчик GUI не обязательно нужен, и это помогает избежать блокировки инструмента. И динамические макеты в любом случае должны быть написаны вручную.

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

Ответ 21

Если вы хотите создать окончательный графический интерфейс Java, я рекомендую плагин Eclipse с именем "Jigloo GUI Builder", который может генерировать чистый и поддерживаемый Java-код. Если вы просто хотите быстро создать графический интерфейс для просмотра, вы можете попробовать инструмент для создания прототипов пользовательского интерфейса, например "ForeUI".

Ответ 22

Нет ничего плохого в использовании GUI Designer, когда: Вы понимаете, что делает IDE и что она генерирует, как настроить выход IDE Вы понимаете код, созданный с помощью IDE

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

Q:"I have 10 years of experience writing swing applications"

A:ok

Q:How would you debug this code

A:Oh wait, there no Netbeans form file??? You guys are not high tech!

Q:Hum.. you don't understand it?

A:Of course not, it like machine code, you need to refractor it all and use an IDE!

Ответ 23

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

Когда я делал простые скрипты с использованием AutoIt, которые, как я знал, будут использоваться только на машинах с достаточно большими экранами, я бы использовал редактор форм GUI. Тем не менее, с коммерческими приложениями и приложениями, которые могут работать на машинах с любыми спецификациями, я, как правило, уклоняюсь от разработчиков графического интерфейса.

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

Чтобы ответить на исходный вопрос напрямую, в 99,5% случаев я буду писать графический интерфейс с нуля!