Как преобразовать обычный проект java в intellij в проект JavaFx
в настоящее время я использую обычный проект java (проект gradle) и хочу преобразовать его в проект JavaFx без необходимости реимпорта существующих источников в новый проект Javafx. Есть ли способ достичь этого?
4 ответов
нет ничего конвертировать.
Я не считаю, что есть какая-либо разница в идее между "нормальным" проектом Java и проектом JavaFX.
конечно, в идее 12.x+ существует мастер, который можно использовать для создания нового проекта JavaFX. Но я думаю, что все, что он делает, это создает образец приложения hello world - после первоначального создания способ работы проекта ничем не отличается от любого другого проекта Java.
и вот как это должно быть, JavaFX просто Ява. Oracle не различает JavaFX и Java в своем дистрибутиве, и не должны IDEs в своих типах проектов.
обновление
так что я был неправ достаточно, что это имеет значение: -)
используя Idea 13.1.4, если я создаю новый проект с помощью File | New Project | Java
, есть следующие настройки ресурсов (File | Settings | Compiler
):
?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl
то есть ресурсы для проекта просто настроены на копирование только определенных типов файлов. Таким образом, вы можете изменить его, чтобы получить дополнительные типы файлов, необходимые в некоторых проектах JavaFX, добавив поддержку копирования ресурсов для fxml и css; i.e, добавление ;?*.fxml;?*.css
.
интересная часть заключается в том, что если вы создаете новый проект, используя File | New Project | JavaFX
, есть следующие настройки ресурсов:
!?*.java;!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj
по сути, он копирует все, что не исходный файл, своего рода набор черного списка файлов, а не набор белого списка файлов, как используется другими шаблонами создания проектов. Действительно странный... В любом случае, наборы ресурсов настраиваются пользователем, поэтому вы можете изменять их по своему усмотрению, и как только вы это сделаете, у вас не должно быть никаких проблем (я считаю, но я ошибался раньше ;-)
предложение-используйте сторонние инструменты сборки в сочетании с IDE
возможно, вам лучше основывать свою сборку на Сторонний инструмент, такой как Gradle или Maven. идея работает очень хорошо с обоими этими внешними инструментами сборки (и другими). Преимущества использования стороннего инструмента:
- проекты с этими инструментами следуют соглашению, в котором ресурсы помещаются в определенную папку ресурсов, и все в этой папке рассматривается как ресурс, который будет упакован в вывод сборки. Так будет меньше путаницы.
- результирующие проекты более портативны и проще в использовании другими разработчиками, которые могут не использовать Idea.
- проекты могут быть построены легко непрерывными системами построения интеграции как Дженкинс.
- и Gradle и Maven имеют специальные плагины JavaFX, которые обеспечивают дополнительную поддержку для упаковки приложений JavaFX.
конечно, недостатком использования стороннего инструмента сборки является сложность (и многие причуды) их изучения, поскольку иногда они могут быть довольно зверь. Так Что Я ... подумайте, что это немного компромисс-небольшие, личные исследовательские проекты не нуждаются в них, более крупные проекты или проекты, которые вы собираетесь поделиться с другими, выигрывают от использования таких инструментов.
одним из решений является создание кода с помощью Scene Builder, а затем интеграция его в существующий проект IntelliJ. Хотя это должно быть возможно импортировать как модуль, вы также можете просто переместить код туда, где он должен быть (внесение соответствующих исправлений в инструкции пакета и т. д.). Если вы заметили, что импорт javafx не распознается в вашем проекте, попробуйте следующее решение:
сначала убедитесь, что вы настроили IntelliJ в целом для JavaFX, следуя исходные шаги в этом учебник. Примечание: ниже я упоминаю 1.8, но должен работать с 1,7+. Я рекомендую 1.8+.
второй убедитесь, что существующие настройки проекта позволяют использовать javaFX
- Открыть Структуру Проекта
- нажмите на проект в области настроек проекта
- убедитесь, что пакет SDK проекта равен 1.8+.
В-третьих убедитесь, что модули настроены для поддержки JDK JavaFX с
- Открыть Структуру Проекта
- нажмите на модули в области настроек проекта
- убедитесь, что используемый модуль SDK поддерживает javaFX, снова я использую JDK 1.8, но он должен работать с 1.7.
кроме того, имейте в виду, что если у вас есть проект maven, вам может потребоваться поместить ваш fxml в определенное место "/main/resources/". Взгляните на этого.
Это сработало для меня, и я надеюсь, что это поможет вы.
я последовал этим шагам
- создайте новый модуль в существующем проекте intellij (A)
- создайте новый проект JavaFx в другом месте
- скопируйте код из проекта JavaFx, а именно
Controller.java,Main.java and sample.fxml
в ваш модуль в проекте (A) в каталоге src, как вA/user-interface/src
- вы найдете ошибку в
sample.fxml
, поскольку он ссылается на класс контроллера какsample.Controller
измените его только на "контроллер". он работал таким образом (как я убралsample
папку пакета
- в (A) откройте меню настроек
File | Project Structure | Modules
- выберите
user-interface
модуль из списка в левой части окна настроек - переключатель
dependencies
tab - добавьте свой старый модуль без gui в качестве зависимости модуля, используя зеленый
+
отметка справа сторона - теперь вы можете использовать классы в модуле без gui, наслаждайтесь!
Примечание: Вы можете пропустить зависимость add module и позволить intellij сделать это за вас, просто введите имя класса в старом модуле,alt+enter
(лампочку магия) -> add module depenency
пожалуйста, имейте в виду, что ваш источник(ы) папка(ы) должна быть установлена правильно. Смотрите скриншот, чтобы понять, что я имею в виду..