Советы

Средства визуального программирования и проектирования программ. Визуальное программирование на Java

Средства визуального программирования и проектирования программ. Визуальное программирование на Java

С выходом версии ЛИРА-САПР 2018 в цепочке BIM появился новый гибкий инструмент - система визуального программирования, позволяющая выполнять параметрическое моделирование зданий и сооружений произвольной формы. Данная система является представителем технологий нового поколения для создания моделей конструкций и представляет собой графический редактор алгоритмов (последовательности действий), который использует инструменты моделирования САПФИР-3D. Новая система демонстрирует современный тренд развития технологий создания моделей: эволюция от текстового файла, графической среды и до визуального программирования.

Создание 3D модели моста в Сапфире при помощи нодов

Результатом работы Генератора является готовая 3D модель, состоящая из базовых объектов САПФИР-3D: колонн, балок, стен, плит, свай, ферм, поверхностей, нагрузок, граничных условий и других объектов. В тандеме Генератор и САПФИР-3D дают нам возможность использовать точный параметрический контроль над моделью с последующим ее экспортом в ЛИРА-САПР для дальнейшего расчета.


Создание 3D модели смотровой башни в Сапфире при помощи нодов

Что же такое визуальное программирование? Это способ создания алгоритма путем управления графическими объектами вместо написания текста. То есть для работы с такой системой нет необходимости обладать навыками программирования или быть знакомым со структурой программного кода.

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

Пользовательский интерфейс Генератора представлен в виде ленты и рабочей области-холста, на котором и происходит создание графической последовательности действий. Палитра нодов разделена на вкладки по тематической направленности: модели, геометрия, преобразования, параметры и сервисы.


Ноды в Сапфире

Вся геометрия, которая генерируется при использовании различных нодов Генератора, будет отображаться в графическом окне САПФИР-3D.

Исходными данными для построения таких графических алгоритмов могут служить геометрические примитивы САПФИР-3D (точки, линии, поверхности).


Создание 3D модели здания в Сапфире при помощи нодов

Генератор является гибким инструментом в цепочке BIM. В качестве исходных данных он может использовать информацию из других САПР:

  • 3D формы (поверхности) в формате *.obj;
  • геометрические примитивы в формате *.dxf (точки, линии, полилинии, контуры).

При изменении исходных данных в других САПР (редактирование формы поверхности или корректировка dxf файла) выполняется автоматическое обновление модели в Генераторе.


Создание 3D модели здания в Сапфире при помощи нодов и dxf файла

Созданный сценарий (набор нодов) можно сохранять в библиотеку для последующего использования.

Для более продвинутых пользователей в рамках системы САПФИР-Генератор также реализован редактор скриптов, который позволяет писать свои ноды с новой спецификой работы.

Визуальное программирование

Визуальное программирование - способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста.

Необходимо различать:

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

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

  • языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;
  • языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройкой их свойств. Примеры: Delphi и C++ Builder фирмы Borland , С#
  • языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML .

Визуально-преобразованные языки являются невизуальными языками с наложенным визуальным представлением (например, среда Visual C++ для языка C++). Естественно-визуальные языки имеют неотъемлемое визуальное выражение, для которого нет очевидного текстового эквивалента (например, графический язык G в среде LabVIEW).

Графические, или визуальные, языки программирования

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

  • Дракон-схемы - графический язык программирования, используется для программирования в ракетно-космической технике («Буран », «Морской старт », «Тополь »). Существует бесплатный Дракон-редактор. Этот язык имеет наиболее строгое теоретическое обоснование.
  • Язык последовательных функциональных схем SFC (Sequential Function Chart) - графический язык программирования широко используется для программирования промышленных логических контроллеров PLC .

В SFC программа описывается в виде схематической последовательности шагов, объединённых переходами.

  • - язык релейно-контактных схем
  • FBD - язык Функциональных блоковых диаграмм.
  • Язык CFC (Continuous Flow Chart) - ещё один высокоуровневый язык графического программирования. CFC - это дальнейшее развития языка FBD. CFC был специально создан для проектирования систем управления непрерывными технологическими процессами.
  • G, язык, используемый в среде разработки LabVIEW
  • VisSim это визуальный язык программирования предназначенный для моделирования динамическая систем , а также проектирования, базирующегося на моделях, для встроенных микропроцессоров .

Визуальные средства разработки

  1. AgentSheets , легкая в использовании авторская система для игр и научных расчётов
  2. Analytica
  3. AppWare, also known as MicroBrew, программирование, на основе иконок для Mac OS и Microsoft Windows
  4. AudioMulch, основанная на потоке звукового сигнала, также для среда для создания музыки
  5. Aviary Peacock, визуальная лаборатория на основе просмотра файлов
  6. Baltie
  7. Befunge , эзотерический текстовый язык программирования, в котором команды размещаются графически в текстовом файле
  8. eXpecco, основанный на графическом потоке язык программирования и среда разработки для автоматизации тестирования
  9. HiAsm , конструктор программ
  10. JMCAD среда графической разработки систем для промышленности, инженеров и учёных
  11. Kwikpoint, пиктограммный визуальный транслятор, созданный Аланом Стилманом
  12. LabVIEW , среда графического программирования, разработанный для инженеров и учёных
  13. LogicProgram, язык, среда графического программирования, позволяющая формировать матрицу отношений компонентов платформы
  14. Macromedia Authorware
  15. Miracle C Compiler, среда графического программирования, позволяющая формировать матрицу отношений компонентов платформы (сайт: http://www.c-compiler.com)
  16. MQL-Studio for HiAsm , пакет для разработки экспертов, скриптов, индикаторов на языке MQL5 в визуальном редакторе программ HiAsm.
  17. Thyrd , свободная, открытая графическая среда программирования (иерархия графических примитивов) на базе Forth (Форт)языка
  18. ДРАКОН , язык, созданный для разработки Советского Бурана (космического корабля)

См. также

Примечания

Ссылки

  • http://vbzero.narod.ru/project.htm - статья для тех кто хочет начать программировать или хочет попробовать свои силы.
  • PureBuilder - среда визуальной разработки, в настоящее время разрабатывается

Wikimedia Foundation . 2010 .

Смотреть что такое "Визуальное программирование" в других словарях:

    Программирование, предусматривающее создание приложений с помощью наглядных средств. При этом программист показывает, что должно получиться в результате, а текст программы генерируется автоматически с помощью визуального прототипа. См. также:… … Финансовый словарь

    Визуальное программирование способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания ее текста. Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени… … Википедия

    У этого термина существуют и другие значения, см. RAD. Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ Проектиро … Википедия

    У этого термина существуют и другие значения, см. Событие. Событие в объектно ориентированное программировании это сообщение, которое возникает в различных точках исполняемого кода при выполнении определённых условий. События предназначены для… … Википедия

    У этого термина существуют и другие значения, см. Дракон (значения). Пример блок схемы алгоритма на языке ДРАКОН дракон схемы ДРАКОН (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность) визуальный… … Википедия

    Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/28 сентября 2012. Пока процесс обсуждения не завершён, статью мож … Википедия

    Мытищинская Школа программистов (МШП) некоммерческая образовательная организация, созданная в 2001 году. Руководителем Школы программистов является Шедов Сергей Валерьевич педагогический стаж 11 лет, учитель высшей… … Википедия

    - (МШП) некоммерческая образовательная организация, созданная в 2001 году. Руководителем Школы программистов является Шедов Сергей Валерьевич педагогический стаж 11 лет, учитель высшей квалификационной категории, председатель… … Википедия

    У этого термина существуют и другие значения, см. Алиса. Alice Базовая анимация конькобежца … Википедия

    Sikuli открытая кросс платформенная визуальная среда создания сценариев скриптов, которая ориентирована на программирование графического интерфейса при помощи изображений (скриншотов). В качестве скриптового языка в Sikuli используется… … Википедия

Книги

  • Программирование микроконтроллеров для начинающих. Визуальное проектирование, язык C, ассемблер (+ CD-ROM) , В. Б. Иванов. В этой книге автор проводит читателя по пути освоения программирования микроконтроллеров от простого к сложному. Начав с краткого описания архитектуры и системы команд микроконтроллеров PIC,…

Почти все книги и уроки по Java для новичков начинаются с описания ООП: какой он замечательный с великолепный. Понятно, поскольку в Яве просто невозможно любое другое программирование, кроме как объектно-ориентированное, то вначале предлагается освоить 40..80 страниц безумных аналогий с иерахией кошечек/собачек/уточек/автомашин, и только после этого предлагается написать «Hello, World!». :-)

При этом стоит заметить, что абсолютно всё обучение Java строится на примитивнейшем выводе результата на консоль. То есть не консольное приложение в привычном понимание, а именно вывод каких-то данных построчно. Ну вот например Turbo Pascal 3.0 вышел в 1985 году и в нём уже была поддержка графических режимов. В 1990 году появился Turbo Vision - очень крутая вещь - аля-Windows только для DOS. А в Яве в 2018 году возможен только вывод на консоль. И вот вся эта восторженность и крутость как-то вдребезги разбивается уже на этапе «Hello, World!»... Хуже наверное это только развлекаться на программируемом калькуляторе МК-61 или МК-52 - а что? там такой же построчный вывод.

Но, самое забавное - это то, что на Java реально можно создавать программы используя визуальное программирование! Я об этом узнал только когда прочитал (или скорее ознакомился) с 500 страничной книгой, где в одной из последних глав, вдруг выяснилось, что для Java существуют нормальные GUI (графические интерфейсы пользователя) и можно оформлять программы с кнопочками, полями ввода и нормальными меню. Спрашивается: зачем вы столько времени «мурыжили» эту паршивую консоль, когда можно было сразу всё делать красиво и аккуратно?

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

Первый - GUI для Java есть трёх видов (библиотек): AWT , Swing (кто придумывает такие названия?) и JavaFX .

На сегодняшний день (Java 8 и 9) все они входят в комплект поставки JDK: то есть всё работает из коробки и не нужно заморачиватся с их установкой. Это большой плюс.

Но, AWT - это первая и очень старая реализация, поэтому её использовать не нужно. В общем - некошерно. Swing - тоже некошерно, поскольку там что-то не так замутили и программы из-за него жутко тормозят. Точнее не скажу, не разбирался, но вроде как она официально больше не развивается несколько версий. А вот JavaFX - это гуд и наше светлое будущее.

Есть ещё такая мерзость - java-апплеты , те которые работают в браузере и при этом его намертво «вешают», примерно как Flash, только ещё хуже. К счастью эту/эти штуку/штуки практически уже не используют, поэтому тратить время на их изучение бессмысленно.

Так что единственное на что стоит потратить время - это JavaFX.

Второй момент . Всё не так просто. Рассмотрим Delphi (или Visual Studio, Lazarus, не важно). Даже для «зеленого» новичка создание простой программы (одна кнопка и текстовое поле для вывода) будет происходить так:

  • запускаем Delphi;
  • автоматом создается новый проект с главной формой;
  • выбираем на палитре компонентов кнопку и размещаем на форме; всё визуально
  • аналогично кидаем на форму текстовое поле;
  • при необходимости в панели свойств можно указать текст кнопки, размеры и т.п.;
  • запускаем - Delphi предложит сохраниться, сохраняемся.

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

Если мы захотим добавить какое-то действие, например при нажатии на кнопку, заполнять текстовое поле фразой «Привет!», то делаем так:

  • два раза кликаем на кнопку (или выбираем событие onClick);
  • Delphi создает код обработчика этого события и перекидывает нас в редактор;
  • набираем название текстового поля и Delphi выдает подсказки, по которым можно соориентироваться что и как делать.

То есть опять же, IDE выполнила всю черновую работу.

Но это в других языках, Java идёт своим путём. Чтобы создать кнопку в JavaFX нужно вручную создать Stage - «театральные подмостки» (название на полном серьёзе!) и на них разместить сцену (Scene). К ней какой-нибудь контейнер в который уже вкладывается прочие элементы.

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

Response = new Label("Push a Button"); Button btnUp = new Button("Up"); Button btnDown = new Button("Down"); btnUp.setOnAction(new EventHandler() { public void handle(ActionEvent ae) { response.setText("You pressed Up."); } }); btnDown.setOnAction(new EventHandler() { public void handle(ActionEvent ae) { response.setText("You pressed Down."); } }); rootNode.getChildren().addAll(btnUp, btnDown, response); ...

Когда кнопок наберется с десяток, плюс 20 пунктов меню, плюс 30 других компонентов, то код маленьким не покажется. И это ещё без кода, который отвечает за дополнительные свойства, например выравнивание, размеры, шрифт... И вот это второе указывает на то, что обучалки по JavaFX как раз и показывают как писать «fx-код» ручками. Тоска, одним словом...

Но, тут возникает спасительный третий нюанс . Оказывается умные люди (видимо знакомые с полноценными IDE), разработали другой вид приложений, где для генерации «fx-кода» используется описательный xml-файл, который называется fxml , а такие программы менуются как «Приложения FXML JavaFX »

Для меня совершенно удивительно то, что обучение Java не начинается именно с таких приложений. Пусть это не Delphi, но всё-равно это в миллион миллионов раз лучше, чем работать с консолью и забивать себе голову прочим хламом о том, почему нужно использовать стопицот строк с ООП там, где в других языках на это уходит одна простенькая процедура. ;-)

Теперь серьёзно. Если вы никогда не программировали на Java, то можете попробовать сделать это прямо сейчас. На самом деле - это довольно круто, хотя потребуется немного потратить время, чтобы освоится с программами. Если у вас есть опыт работы с «визуальными IDE», то ещё лучше - встретите много знакомого.

JDK

Ява должна быть установлена на компе. Я не буду приводить ссылки как это сделать - гугл в помощь, поскольку всё слишком просто.

IDE

В Яве нет какой-то одной программы - среды разработки, поэтому в Сети встречаются примеры из разных программ. Самые примитивные, вроде Notepad++ годятся только для консольного вывода, но если рассматривать что-то более серьёзное, то выделяются только три кандидата: NetBeans , Eclipse и IntelliJ IDEA .

NetBeans - самая простая программа, которая быстро (относительно остальных) запускается и довольно сносно работает.

Eclipse - тоже неплохой вариант, более мощный чем NetBeans, но слабее чем IntelliJ IDEA.

IntelliJ IDEA - выглядит самой крутой, но за это приходится платить скоростью работы. Стоит отметить, что Android Studio базируется на IntelliJ IDEA, но студия работает почему-то значительно медленней.

Важный момент связан с программированием под Андроид. Из этих трех IDE только IntelliJ IDEA для этого более-менее годится. В Сети масса материалов о программировании под Андроид в Eclipse, но они все уже устаревшие - не тратье время, запуская старенький ADT-плагин и пытаясь хоть что-то с ним сделать. Может быть старый Android SDK и будет работать, но все новые - уже нет.

Я покажу как сделать приложение FXML JavaFX во всех трёх программах, но прежде чем приступать, нужно установить ещё одну программу: SceneBuilder (используйте версию для Java 8). Это ключевая программа, где, собственно и выполняется всё визуальное построение. SceneBuilder самостоятельно может работать без IDE, поэтому можете её запустить и посмотреть как она устроена. На выходе будет fxml-файл, который содержит всю нужную разметку. Этот файл и используется в IDE, вместо написания мегатонны кода. :-)

ТЗ

Создаваемая программа будет очень простой - кнопка и текстовое поле. При нажатии на кнопку в текстовое поле пусть добавляется текст «Привет!».

В каждой программе вам нужно заранее прописать настройку - используемую JDK. Если не можете понять как это сделать, гуглите.

NetBeans

Перед началом работы, нужно подключить SceneBuilder: Сервис - Параметры - Java - JavaFX - Начальная страница Scene Builder . Выберите каталог программы. Настройку достаточно сделать один раз. Это относится ко всем IDE.

Создаём новый проект, где нужно выбрать «Приложение FXML JavaFX».

Жмём «Готово» и, после некоторой работы NetBeans, видим готовые файлы:

  • Myfx.java - это main-файл, который, собственно и запускает всю программу.
  • FXMLDocumentController.java - это «контролёр», где и будет в основном программирование.
  • FXMLDocument.fxml - этот файл хранит визуальную часть.

Теперь запустите программу. Вначале пойдет сборка и компиляция (довольно быстрая), после чего выскочит окно нашей программы.

Это круто, потому что мы не написали ни строчки кода, но уже получили программу с работающей кнопкой. :-)

Если вы правильно указали путь к SceneBuilder, то можете выбрать пункт меню «Открыть» на файле FXMLDocument.fxml . Это же самое произойдёт если сделать двойной клик. Откроется SceneBuilder. Если пункта нет, то путь указан не верно, проверьте настройку.

Принцип работы в SceneBuilder един для всех IDE, поэтому пока я опишу только общие моменты, дальше вы уже сами сообразите.

Стоит отметить, что после редактирования файла, закрывать SceneBuilder не нужно. Достаточно только сохраниться (Ctrl+S) и переключиться на IDE - она сама подхватит изменения.

Окно SceneBuilder разделено на три части:

  • слева - наборы компонентов, иерархия и Controller, где указывается основной класс (это важно!)
  • в центре - сама форма, где и происходит визуальное построение.
  • справа - свойства компонентов, разделенные на три закладки (это условное деление). Вкладка Code отвечает за то, что будет использоваться в java-файле.

Построение FX-программ должно начинаться с контейнера. В данном примере NetBeans использовал AnchorPane . Он довольно удобный, позволяя настраивать для вложенных элементов «правильные» отступы. Вкладка Containers содержит другие контейнеры, с которыми вы сможете самостятельно потренироваться (я и сам ещё и половины не освоил:-)).

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

По условиям ТЗ у нас должно быть текстовое поле. NetBeans использует Label, но мы не будем ничего удалять, а просто добавим новый элемент TextField на форму (произвольно на ваш вкус).

В SceneBuilder возможен предварительный просмотр (Ctrl+P). В этом режиме отображается только форма и все элементы «без java-программирования».

Теперь важный момент: для того чтобы можно было использовать компонент в java-программе (в нашем коде), следует выполнить две вещи.

Первая - проверить, что указан верный контролёр. В нашем случае NetBeans сам уже всё сделал и указал myfx.FXMLDocumentController .

Как видно - это контролёр из файла FXMLDocumentController.java (пакет.контролёр). Не всегда IDE его указывают, но это важно, поскольку fxml-файл (точнее java-код) использует его для привязки.

Второй момент - используемый компонент должен иметь свой ID - это параметр fx:id . Здесь я указал textField1 .

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

У кнопки, которая будет заполнять текстовое поле, тоже должен быть свой id, а также метод события onAction (это основное событие компонента, а не onClick, как в Delphi). NetBeans уже об этом позаботился, поэтому нам ничего не придется писать.

На этом визуальное построение можно завершить. Сохраняемся и переключаемся в NetBeans. Видим, что файл FXMLDocument.fxml изменился: добавился textField1 :

Теперь нам нужно как-то использовать текстовое поле в java-коде. В отличие от Delphi, NetBeans не создаёт для этого никакого кода, потому нам придётся добавлять его в «полу-ручном» режиме. Для этого в разных IDE используются различные способы, но общий принцип в том, что нужно установить курсор на нужное поле в редакторе и выполнить некое «действие» . В NetBeans оно называется Установить контролер в меню Источник . (Да в Яве большие проблемы с именованиями...)

После выполнения этой команды, произойдет переход к файлу FXMLDocumentController.java , где в код будет добавлено объявление переменной textField1 :

Обратите внимание на «@FXML» - эта аннотация указывает, что код как-то используется в FXML. После этих изменений SceneBuilder уже не будет выдавать предупреждение, как желтый треугольник ранее. Если ещё раз запустить SceneBuilder, то это можно проверить.

Запускаем программу на выполнение для теста. Теперь наша задача по клику на кнопке заполнить текстовое поле. Как вы уже поняли метод handleButtonAction как раз и выполняет нужную работу. В нём дописываем:

TextField1.setText("Привет!");

Обратите внимание как работает автодополнение кода после того, как будет нажата точка.

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

Данная возможность присутствует по всех IDE, хотя есть различия в реализации и использовании.

Запускаем программу и видим, что всё работает как нужно.

Нам пришлось написать всего одну строчку кода, ну и выполнить несколько дополнительных действий в редакторе.

Eclipse

Запуск Eclipse происходит несколько дольше, чем NetBeans. Вначале нужно указать путь к SceneBuilder. Делается это в Window - Preferences - JavaFX .

Обратите также внимание на то, что Eclipse неруссифицированная программа (даже не знаю, есть ли к ней руссификатор).

Создаём новый проект и выбираем JavaFX.

Жмем Next и попадаем на страницу настроек. Здесь я указал название проекта, как и прежде myfx (у меня для разных IDE разные каталоги проектов, поэтому они не пересекаются друг с другом).

Здесь нужно выбрать тип приложения, тип контейнера и имя контролера. Жмем Finish и Eclipse быстро генерирует каркас нашей будущей программы.

Здесь всё очень похоже, только добавлен еще один файл application.css - да, да, в JavaFX можно использовать CSS для настройки оформления! Eclipse сразу сгенерировал для этого файла код подключения.

Запустим программу и убедимся, что нет ошибок.

В отличие от NetBeans, здесь совершенно пустая форма. Откроем её в SceneBuilder с помощью контекстного меню.

И здесь мы видим, что формы нет. Но, на самом деле она есть - просто по умолчанию используется вычисляемый размер (высота и ширина), который в данном случае равен нулю. Компонентов-то нет! В нашем случае это не совсем то, что нужно, поэтому мы выберем BorderPane в иерархическом списке и в свойствах Pref Width и Pref Height укажем какие-то значения. Эти свойства задают «желаемые» ширину и высоту. После этого форма сразу же «проявляется».

Контейнер BorderPane состоит из 4-х частей: top, right, bottom, left и center. Компоненты следует помещать в разные части - от этого будет зависеть их положение при изменении размера окна.

Здесь довольно сложно объяснить словами, просто попробуйте разместить несколько кнопок, а после в предварительном просмотре измените размеры окна.

Я не стал особо мудрить и разместил вверху текстовое поле, а в центре кнопку.

Теперь проверим, что указан контролёр: в данном случае application.SampleController - Eclipse выполнил эту работу за нас.

Теперь нужно указать id у наших элементов. Для кнопки я задал btn1 , а текстовому полю textField1 . У нас опять же возникло сообщение «желтый треугольник».

Для кнопки укажем метод на событие - btn1Click .

Сохранимся и вернёмся в Eclipse. Мы увидим, что файл Sample.fxml обновился, но рядом с некоторыми строками появились значки предупреждения.

Ситуация здесь точно такая же как и в NetBeans - нужно в «полу-ручном» режиме вносить правки. В Eclipse для этого используется контекстное меню по второй кнопке мыши: Quick Fix или горячая клавиша Ctrl+1 (что удобней).

При этом выскакивает подсказка о предполагаемом действии. Например для textField1 предлагается добавить идентификатор в контролёр:

а для кнопки ещё и метод-обработчик события:

При этом, Eclipse немного притормаживает и изменения не сразу отображаются на экране. Тут нужно либо переключиться на файл контролёра, либо немного подождать. В результате в код будет добавлены нужные изменения и значки предупреждений исчезнут.

Добавим наш код как и раньше мы сделали в NetBeans.

Обратите внимание на более интелектуальную работу автодополнения. В автоматическом режиме он немного подтормаживает, но если нажать Ctrl+Пробел (эта же комбинация используется во многих IDE), то позволяет получить и неплохой хелп.

Запускаем нашу программу.

И записываем себе на счёт ещё одну IDE. :-)

IntelliJ IDEA

IntelliJ IDEA запускается довольно неспешно, можно успеть проверить почту. :-)

Опять же указываем путь к SceneBuilder: File - Settings :

И указываем его имя (как обычно - myfx):

IntelliJ IDEA выполнит инициализацию и мы увидим уже знакомые три файла. Запустим программу, чтобы проверить отсутствие ошибок.

Здесь также пустая форма, но зато указан заголовок программы. Если посмотреть на код Main.java , то увидим строчку:

PrimaryStage.setTitle("Hello World");

Это и есть заголовок приложения. В других IDE эта строчка отсутствует, но зато теперь мы знаем для чего нужны «театральные подмостки». ;-)

Переключаемся в SceneBuilder (аналогично Eclipse): второй кнопкой мыши нужно выбрать Open in SceneBuilder .

Здесь также пустая форма, но с контейнером GridPane . Устанавливаем Pref Width и Pref Height , чтобы отобразилась форма.

Сам по себе GridPane представляет собой аля-сетку из ячеек для элементов. Думаю, что тут нет смысла повторяться - все действия будут аналогичными:

  • разместить кнопку и тестовое поле,
  • присвоить им id,
  • для кнопки прописать метод для обработки клика,
  • не забываем проверить, указан ли контролёр (sample.Controller ).

Закрываем SceneBuilder и возвращаемся в IntelliJ IDEA. Здесь нужно добавить идентификаторы id в код, а также создать метод для реакции на нажатие кнопки.

IntelliJ IDEA предлагает для этого два способа. Первый - при наведении мышки на «проблемное место» будет появляться подсказка, на которую можно кликнуть:

Второй - горячая клавиша Alt+Enter

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

При этом, заметьте, не добавляется строчка «@FXML». Если мы вручную его добавим перед переменными и методом, то IntelliJ IDEA сразу предложит добавить нужный java-класс:

Вообще IntelliJ IDEA показывает достаточно хорошую сообразительность и выступает помощником в написании кода. Причём делает это самостоятельно без лишних нажатий кнопок.

Ну что ж, добавляем свой код для обработчика и запускаем программу:

Прекрасно, всё работает!

Итого

Главный вывод - на Яве возможно визуальное программирование . Может оно и не идеальное, но вполне годное, особенно для новичков. Изучать язык гораздо интереснее, когда есть какой-то осязаемый результат - ООП, классы и прочие премудрости - это хорошо, но лучше начать с кнопочек, полей ввода, меню и всего того, что подразумевает нормальная программа. А консоль - это скучно и неинтересно.

Три IDE я привел не случайно. В Сети очень много примеров для Явы и все они для разных программ. Лично я ещё не определился со своим предпочтением, поскольку у всех есть как плюсы, так и минусы. Наверное нужно поработать со всеми, тогда и будет понятно.

Но, ключевой момент - это умение работать с SceneBuilder. Построение формы в JavaFX немного отличается от той же Delphi, в первую очередь в использовании сложных контейнеров (они могут быть вложенными друг в друга). Поэтому вначале следует разобраться с ними, после уже можно браться за сами компоненты.

Среды разработки программ

Интегрированные среды программирования являются различными средами программирования объединенными в один пакет программ и использующие одни и те же средства(пример Microsoft Visual Studio включает в себя несколько языков программирования, но с объединенным компилятором т.е. на каком либо языке программирования(из включенных в пакет) пишется программа затем собирается(сборка происходит у каждого языка своя) и передается компилятору(компилятор один) или используют одни и те же средства отладки программ и т.д.).

Также в среду разработки интегрируются поддержка различных технологий ActiveX, COM, ADO и других что позволяет писать программы или компоненты используя эти технологии.

Обычно среда разработки включает в себя текстовый редактор, компилятор и/или интерпретатор, средства автоматизации сборки и отладчик. Иногда также содержит средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов - для использования при объектно-ориентированной разработке ПО. Хотя и существуют среды разработки, предназначенные для нескольких языков - такие как Eclipse или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования - как например, Visual Basic.

Примеры сред разработки - NetBeans, Eclipse, Sun Studio, Turbo Pascal, Borland C++, GNU toolchain, DrPython, Borland Delphi, PascalABC.NET, Dev-C++, Lazarus, KDevelop, QDevelop, QNX Momentics IDE, XCode

Визуальное программирование - способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста.

Необходимо различать:

графический язык программирования - который прежде всего язык программирования (со своим синтаксисом)

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

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

языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;

языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройкой их свойств. Примеры: Delphi и C++ Builder фирмы Borland, С#


языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML.

С изобретением визуального программирования, первой ласточкой которого была среда разработки Visual Basic, создание графического пользовательского интерфейса стало под силу даже новичку. В среде Visual Basic можно было быстро создать приложение для операционной системы Windows, в котором были все присущие графическому пользовательскому интерфейсу элементы: окна, меню, кнопки, поля ввода и т.д. Все эти элементы превратились в строительные блоки программы - компоненты - объекты, имеющие визуальное представление на стадии проектирования и во время работы.

Проектирование пользовательского интерфейса упростилось на порядок, однако, для профессиональных программистов язык Basic оказался явно слабоват. Отсутствие в нем контроля типов данных и механизма их расширения оказалось камнем преткновения на пути создания серьезных программ. Создание нестандартных компонентов в среде Visual Basic было крайне затруднено (для этого приходилось прибегать к другим средствам разработки, в частности, к языку C++). В общем, среда Visual Basic отлично подходила для создания прототипов приложений, но не для разработки коммерческих программных продуктов

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

Delphi позволяет быстро и удобно разрабатывать эффективные приложения, включая приложения для работы с базами данных. Система имеет развитые возможности по созданию пользовательского интерфейса, широкий набор функций, методов и свойств для решения прикладных расчетно-вычислительных задач. В системе имеются развитые средства отладки, облегчающие разработку приложений. Традиционно Delphi относят к системам быстрой разработки приложений. Вместе с тем эта система обладает практически всеми возможностями СУБД, таких как Microsoft Access и Visual FoxPro. Она позволяет удобно создавать приложения с помощью инструментальных программных средств, визуально подготавливать запросы к базам данных, а также непосредственно писать SQL- запросы к базам данных. Применительно к работе с базами данных Delphi обеспечивает широкий набор инструментальных средств, поддерживает современные технологии, в том числе многоуровневую технологию «клиент - сервер» .

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

Визуальное конструирование форм избавляет программиста от многих аспектов разработки интерфейса программы, так как Delphi автоматически готовит необходимые программные заготовки и соответствующий файл ресурсов. Программист использует специальное окно, которое называется окном формы, как прототип будущего окна программы и наполняет его компонентами, реализующими нужные интерфейсные свойства (разного рода списки, кнопки, полосы прокрутки и т.п.). После размещения на форме очередного компонента Delphi автоматически вставляет в связанный с формой модуль ссылку на компонент и корректирует специальный файл описания формы с расширением DMF, который после компиляции преобразуется в ресурсный файл Windows.

Библиотека визуальных компонентов предоставляет программисту огромное разнообразие созданных разработчиками Delphi программных заготовок, которые немедленно или после несложной настройки готовы к работе в рамках вашей программы. Размещение объектов в Delphi связано с более тесными отношениями между объектами и реальным программным кодом. Объекты помещаются в созданную форму, при этом код, отвечающий объектам, автоматически записывается в исходный файл. Этот код компилируется, обеспечивая существенно более высокую производительность, чем визуальная среда, которая интерпретирует информацию лишь в ходе исполнения программы. Использование компонентов не только во много раз сокращает сроки разработки программ, но и существенно снижает вероятность случайных программных ошибок, от которых, увы, не защищен ни один крупный программный проект.

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

Две вышеперечисленные особенности Delphi

1) визуальное конструирование форм

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

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

От Visual Basic язык Delphi отличают строгая типизированность, позволяющая компилятору еще на этапе компиляции обнаружить многие ошибки, а также средства работы с указателями. Delphi имеет самый быстрый среди продуктов подобного рода оптимизирующий компилятор, позволяющий создавать быстрые и относительно компактные программы.

Среда Delphi устраняет необходимость программировать такие компоненты Windows общего назначения, как метки, пиктограммы и даже диалоговые панели. Delphi позволяет приспособить компоненты диалоговой панели (например, Choose File и Save File) к имеющейся задаче, чтобы они работали именно так, как требуется создаваемому приложению. Также здесь имеются предварительно определенные визуальные и невизуальные объекты, включая кнопки, объекты с данными, меню и уже построенные диалоговые панели. С помощью этих объектов можно, например, обеспечить ввод данных просто несколькими нажатиями кнопок мыши, не прибегая к программированию. Это наглядная реализация применений CASE-технологий в современном программировании приложений .

В процессе создания проектов в среде Windows с помощью Delphi наблюдаются следующие выгоды: устраняется необходимость в повторном вводе данных; обеспечивается согласованность проекта и его реализации; увеличивается производительность разработки и переносимость программ.

Визуальное программирование как бы добавляет новое измерение при создании приложений, давая возможность изображать объекты на экране монитора до выполнения самой программы. Без визуального программирования процесс отображения требует написания фрагмента кода, создающего объект «по месту». Увидеть закодированные объекты было возможно только в ходе исполнения программы. При таком подходе достижение того, чтобы объекты выглядели и вели себя заданным образом, становится утомительным процессом, который требует неоднократных исправлений программного кода с последующей прогонкой программы и наблюдения за тем, что в итоге получилось.

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

Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Визуальные компоненты Delphi открыты для надстройки и переписывания.

Эта библиотека объектов включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.

Среда Delphi состоит их четырех окон, управляемых как многооконное приложение с интерфейсом одного документа (рисунок 1). Главное окно Delphi управляет связанными с ним окнами - инспектора объектов, формы и окна редактора кода.

Рисунок 1 - Интерфейс основных окон среды Delphi

Главное окно (рисунок 2) является центром управления разработками. В нем размещены меню, панель быстрого доступа (SpeedВаг) и палитра компонентов. Строка меню дает возможность осуществлять контроль за всеми окнами среды разработки. Панель быстрого доступа обеспечивает оперативный доступ к общим операциям. Палитра компонентов состоит из нескольких групп, в каждой из которых расположены пиктограммы компонентов. Указав в палитре нужный компонент, можно перенести его (щелчком мыши) в окно формы. При этом создается активный объект, для которого с помощью инспектора объект нужно задавать свойства и описывать реакции на события, которые будут происходить с этим объектом при решении задачи.

Рисунок 2 - Главное окно

Окно инспектора объектов (рисунок 3) является многостраничным окном, содержащим помеченные ярлыками страницы свойств (Ргореperties) и событий (Events). На странице свойств показаны свойства объектов, расположенных в окне формы (Form). На странице событий представлены события, на которые реагирую объекты окна формы. Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel, изменяя свойства Caption, Left, Top, Height, и Width.

Можно использовать закладки внизу Инспектора Объектов для переключения между страницами свойств и событий. Страница событий связана с Редактором; если Вы дважды щелкнете мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и Вы сразу же имеете возможность добавить код обработчика данного события. Данный аспект среды программирования Delphi будет еще обсуждаться позднее.

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

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор). Расскажем поподробнее о каждом окне среды Delphi.

Окно формы (окно дизайнера форм) (рисунок 4) содержит компоненты (объекты), с помощью которых пользователь задает и получает от программы всю информацию, необходимую для взаимодействия с задачей в ходе ее исполнения.

Рисунок 3 - Инспектор Объектов

Дизайнер Форм в Delphi - то место, где Вы создаете визуальный интерфейс программы. Он столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент. Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время, является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее «кодируете» .

Рисунок 4 - Дизайнер Форм

Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время, является Редактор.

Окно редактора кода (рисунок 5) дает возможность набирать и редактировать код модуля программы на языке Object Pascal. Это окно является многостраничным, оно позволяет выполнять переходы между модулями программы. Логика является движущей силой программы и Редактор - то место, где Вы ее «кодируете». В окне Редактора Вы создаете логику управления программой.

Рисунок 5 - Окно Редактора

В главном окне принято выделять три основных выделенных элемента (не считая стандартной строки-заголовка):

Строка меню (Menu System);

Палитра компонентов;

Панель быстрого доступа (SpeedBar).

Меню (рисунок 6) предоставляет быстрый и гибкий интерфейс к среде Delphi, потому что может управляться по набору «горячих клавиш».

Рисунок 6 - Строка меню

В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10 - 20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора.

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

Палитра Компонент (рисунок 7) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе (на странице Additional есть компоненты для организации страниц с закладками сверху и снизу).

Рисунок 7 - Палитра Компонент

SpeedBar (рисунок 8) находится непосредственно под меню, слева от Палитры Компонент. SpeedBar выполняет много из того, что можно сделать через меню. Если задержать мышь над любой из иконок на SpeedBar, то Вы увидите, что появится подсказка, объясняющая назначение данной иконки.

Рисунок 8 - SpeedBar

Последняя важная часть среды Delphi - Справочник (on-line help), (рисунок 9). Для доступа к этому инструменту нужно просто выбрать в системном меню пункт Help и затем Delphi Help.

Рисунок 9 - Справочник

Редактор Картинок (рисунок 10) работает аналогично программе Paintbrush из Windows. Вы можете получить доступ, к этому модулю выбрав пункт меню Tools | Image Editor.

Рисунок 10 - Редактор Картинок

А теперь нужно рассмотреть те элементы, которые программист на Delphi использует в повседневной жизни. В дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства: встроенный отладчик; внешний отладчик (поставляется отдельно); компилятор командной строки; WinSight; WinSpector.

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

Чтобы стать сильным программистом на Delphi, Вам понадобится понять, как использовать отладчик Delphi. Отладчик позволяет Вам пройти пошагово по исходному тексту программы, выполняя по одной строке за раз, и открыть просмотровое окно (Watch), в котором будут отражаться текущие значения переменных программы.

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

Внешний компилятор, называется DCC.EXE, полезен, в основном, если Вы хотите скомпилировать приложение перед отладкой его во внешнем отладчике. Большинство программистов, наверняка, посчитают, то гораздо проще компилировать в среде Delphi, нежели пытаться создать программу из командной строки. Однако, всегда найдется несколько оригиналов, которые будут чувствовать себя счастливее, используя компилятор командной строки. Но это факт - возможно, создать и откомпилировать программу на Delphi используя только DCC.EXE и еще одну программу CONVERT.EXE, которая поможет создать формы. Однако, данный подход неудобен для большинства программистов .

WinSight и WinSpector интересны преимущественно для опытных программистов в Windows. Это не значит, что начинающий не должен их запускать и экспериментировать с ними по своему усмотрению. Но эти инструменты вторичны и используются для узких технических целей.

Из этих двух инструментов WinSight определенно более полезен. Основная его функция - позволить наблюдать за системой сообщений Windows. Хотя Delphi делает много для того, чтобы спрятать сложные детали данной системы сообщений от неопытных пользователей, тем не менее Windows является операционной системой, управляемой событиями. Почти все главные и второстепенные события в среде Windows принимают форму сообщений, которые рассылаются с большой интенсивностью среди различными окнами на экране. Delphi дает полный доступ к сообщениям Windows и позволяет отвечать на них, как только будет нужно. В результате, опытным пользователям WinSight становится просто необходим . WinSpector сохраняет запись о текущем состоянии машины в текстовый файл; Вы можете просмотреть этот файл для того, чтобы узнать, что неправильно идет в программе. Данный инструмент полезен, когда программа находится в опытной эксплуатации - можно получить важную информацию при крушении системы.

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