Передо мной предстала следующая задача: написать некоторый софт на Java, с применением GUI на JavaFX. одной из функций будущей программы должна быть возможность построение схем(по типу блок - схем, аля visio, то бишь блоки, соединение стрелками и т.д.). Изучив интернет графических библиотек для FX такого рода я не обнаружил(буду благодарен, если дадите ссылку, может не внимательно искал). Решил зайти с другой стороны, и использовать web - библиотеки на JavaScript для построения подобных схем. Нашёл таковую:
Draw2D
Она бесплатна, если проект не коммерческий. Проект у меня не коммерческий :) (Если есть еще интересные аналоги, знающие люди, напишите) Также, узнал об интересном компоненте JavaFX - WebView. Совместив всё это получил рабочий прототип схем. Т.е. блоки двигаются, стрелками соединяются..Однако одна проблема так и не осталась решённой. Производительность WebView несколько низка, и перетаскивание блоков и прочее выполняется с неприятными фризами. В связи с этим вопросы:
Есть ли аналоги WebView для JavaFX? Я читал про JxBrowser, с его прекрасной производительностью, однако он полностью платный(и очень дорогой). Поэтому прошу подсказать, есть ли ещё интересные аналоги. Спасибо.
Одним из основных требованием является использование Java GUI. Поэтому, в результате исследования была найдена библиотека CEF(Chromium Embedded Framework). Эта библиотека предоставляет встраиваемый компонент WebBrowser, в основе которого лежит движок Chromium. Для CEF есть сборка JCEF(Java CEF), которая предоставляет компонент для библиотеки Java Swing. На официальном сайте CEF(репозиторий bitbacket) есть исходный код JCEF, который надо собрать. Инструкция тут, в разделе Building JCEF. После этого можно подключать библиотеку к проекту JSwing. Производительность этого компонента фантастическая, он совсем чуть медленнее оригинального браузера на основе Chromium. По данной ссылке можно найти инструкцию по подключению библиотеки к проекту JSwing: ссылка. По ссылке описано подключение в проекте IDE Eclipse, однако я настраивал в IDE Intellegi Idea, критических различий нет.
P.S.: к сожалению подключить эту библиотеку к JavaFX нет возможности. Одним из обходных вариантов является использование SwingNode, однако производительность JCEF в таком случае ещё хуже, чем у встроенного компонента WebView.
Виртуальный выделенный сервер (VDS) становится отличным выбором