Как стать автором
Обновить

Комментарии 25

Скрины то не подгрузились)
поправил
поправил
Все ок)
И это «подробная инструкция»? Да-а-а…
а в чём проблема? Статья именно о том, как преодолеть проблему того, что «оно не работает» — эта проблема была у меня и ещё у нескольких людей, которых я знаю, потому и статью написал. Остальное — изучайте как работает swing.
Вот как раз изучив как работает Swing (по книге Портянкина, например) и попробовав «набрасывать» GUI в Idea-евских или NetBeans-овских редакторах графического интерфейса, я пришел к выводу, что легче все делать «ручками» — Swing это позволяет делать достаточно легко в коде.
Бывают разные задачи — и трудоёмкость точного навешивание всяких визуальных «красивостей» через GUI-дизайнер заметно ниже (но это личное). И одноразовую формочку сгенерить проще, если это не самая простая по структуре формочка. Но это, понятно, тоже личное мнение, каждый решает для себя.
Собственно принцип, реализоанный в IDEA мне тоже не нравится. Borland JBuilber 2006 решал эту проблему гораздо изящнее — они генерили _только_ Java-код, который можно было ручками править и даже правленный ручками код обратно прекрасно показывал визард, который опять можно было редактировать хоть в GUI, хоть руками. Почему теперь такие технологии не используются, а используется отдельный XML я не понимаю ((
целая статья о «New»->«File»?
А Вы пробовали этим «New»->«File» воспользоваться?
Форма в коде не создаётся, если выбран не диалог а GUI Form. Я пока разобрался, что в случае с диалогом оно всё-таки работает, пару раз забрасывал такой «визард» (т.к. логично предполагал что это одно и то же, а диалог мне был не нужен). А в «New -> GUI Form» она именно делает непонятно что. Просто класс и в нём 2 переменных (причём рутовую панель вообще любит туда не включать, т.е. от дизайнера я получаю пустой класс и в нем JButton и всё, хотя в дизайнере я что-то там вроде нарисовал). Об этом и статья — помогает разобраться новичку (из названия статьи и первых абзацев это можно понять), что всё-таки не надо пугаться этого и работать таки можно.
Стыдно признаться, но я для создания формы в конструкторе пользуюсь NetBeans, а потом копирую исходный код в Idea и дальше его доделываю(переделываю большие блоки однообразного текста в циклы). В NetBeans более гуманитарный конструктор, например в нем не нужно вставлять ручками Spacer-ы, там просто кнопку(таблицу, панельку и тд) куда-то ставишь она со всех сторон подпирается Spacer-ами(вроде бы так).
В статье надеялся увидеть описание аналогичного функционала в Idea, т.к. может быть я его просто не нашел.

Создаю GUI Form в IDEA с GridLayoutManager. Бросаю кнопку на форму — она подпирается Spacer. Причём, в зависимости куда я "прижал" кнопку — или горизонтальным или вертикальным Spacer. ЧЯДНТ?

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

я пользовался дизайнеров NetBeans, но давно. Да, есть некоторое неудобство в том, что приходится добавлять вручную ещё один Spacer.
Вопрос — а вы на YouTrack не думали оставить заявку с типом "Usability Problem"?

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

это не требование, а предложение по улучшению продукта

Так выключите же обратно: «File -> Settings» — там «Editor -> GUI Designer» в значение «Binary class files» — тогда этот код будет попадать только в .class — в java мешать не будет тогда.
У меня ничего не получилось… Выполнял всё как написано. Вот что получилось: yadi.sk/d/BYNDJZIAtUv5L
И в чём проблема? С Вашими данными — я глянул — всё в порядке, если не считать имени класса с маленькой буквы (не критично, но это может свидетельствовать о том, что собственно изучением Java Вы серьёзно ещё не занялись.) Мой совет — не начинайте с GUI-шных приложений, почитайте толковую книгу с примерами (или сетевые мануалы), наработайте хоть минимальную базу на простых консольных примерах.
А с Вашими данными вроде всё в порядке — на имя файла клик правой кнопкой — в меню выбирайте Run или Debug и всё. Или летит ошибка выполнения? Тогда приводите трейс.
Справедливости ради нужно указать, что Swing уже несколько лет как не развивается. Он лишь поддерживается. На смену Swing давно пришла библиотека JavaFX (JavaFX 8). Там и сконцентрированы все современные подходы для создания визуальной GUI сцены. Это и CSS для стилизации, и FXML для описания форм и байндинга. В качестве визуального редактора используется открытый инструмент Scene Builder. Он передан на разработку в компанию Gluon. Эта же компания развивает инструмент для поддержки создания мобильных приложений для Android и iOS на JavaFX.
Таким образом, сейчас уже не имеет смысла возиться со Swing, если, конечно, вам не приходится поддерживать некий ранее написанный код.
Интересно, а для разработки UI самой IDEA подобный же механизм применяется?
Покопавшись в исходниках IDEA Community edition понял, что нет. form файлы только в тестах попадаются.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации