如何将 intellij 中的普通 Java 项目转换为 JavaFx 项目

我目前正在使用一个普通的java项目(gradle项目),并希望将其转换为JavaFx项目,而不必将现有源代码重新导入到新的Javafx项目中。有没有办法做到这一点?


答案 1

没有什么可以转换的。

我不认为“普通”Java项目和JavaFX项目之间有任何区别。

当然,在 Idea 12.x+ 中有一个向导,可用于创建新的 JavaFX 项目。但我认为它所做的只是创建一个示例hello world应用程序 - 在初始创建之后,该项目的工作方式与任何其他Java项目没有任何不同。

这就是它应该的样子,JavaFX只是Java。Oracle在其发行版中没有区分JavaFX和Java,其项目类型中的IDE也不区分。

我相信,在这种情况下,即使我错了,我也足够正确,如果我错了也没关系。

更新

所以我错了,这很重要:-)

使用Idea 13.1.4,如果我使用创建一个新项目,则有以下资源设置():File | New Project | JavaFile | Settings | Compiler

?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl

也就是说,项目的资源仅设置为仅复制特定文件类型。因此,您可以通过添加对fxml和css的资源复制支持来修改它以获取某些JavaFX项目中所需的其他文件类型;即,附加 .;?*.fxml;?*.css

有趣的部分是,如果您使用 创建新项目,则有以下资源设置:File | New Project | JavaFX

!?*.java;!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj

从本质上讲,它复制的不是源文件的所有内容,一种文件黑名单集,而不是其他项目创建模板使用的文件白名单集。真的很奇怪...无论如何,资源集是用户可配置的,因此您可以根据需要修改它们,一旦这样做,您就不应该有任何问题(我相信,但我以前错了;-)

建议 - 将第三方构建工具与 IDE 结合使用

您可能最好将构建基于第三方工具(例如Gradle或Maven)进行构建。Idea与这些外部构建工具(以及其他工具)都非常有效。使用第三方工具的优点是:

  1. 具有这些工具的项目遵循一种约定,即资源放置在特定的资源文件夹中,并且该文件夹中的所有内容都被视为要打包在生成输出中的资源。因此,那里的混乱较少。
  2. 由此产生的项目更具可移植性,更易于其他可能没有使用Idea的开发人员使用。
  3. 这些项目可以通过像Jenkins这样的持续集成构建系统轻松构建。
  4. Gradle和Maven都有JavaFX特定的插件,为打包JavaFX应用程序提供了额外的支持。

当然,使用第三方构建工具的缺点是学习它们的复杂性(和许多怪癖),因为有时它们可能是野兽。所以我认为这有点权衡 - 小型的个人探索项目不需要它们,较大的项目或您打算与他人共享的项目可以从使用这些工具中受益。


答案 2

一种解决方案是使用 Scene Builder 生成代码,然后将其集成到现有的 IntelliJ 项目中。虽然应该可以将其作为模块导入,但您也可以简单地将代码移动到需要的位置(对 package 语句进行适当的更正等)。如果您注意到项目中无法识别 javafx 导入,请尝试以下解决方案:

首先,请确保您已按照本教程中的初始步骤为 JavaFX 设置了 IntelliJ。注意:下面我提到1.8,但这应该适用于1.7 +。我推荐1.8+。

其次,确保现有的项目设置允许使用javaFX

  1. 打开项目结构
  2. 单击项目设置窗格下的“项目”
  3. 确保项目 SDK 为 1.8+。

第三,确保模块配置为支持JavaFX的JDK

  1. 打开项目结构
  2. 单击项目设置窗格下的模块
  3. 确保正在使用的模块SDK支持javaFX,我再次使用JDK 1.8,但它应该与1.7一起使用。

另外,请注意,如果您有一个 maven 项目,则可能需要将 fxml 放在特定位置“/main/resources/”。看看这个。

这对我有用,我希望它能帮助你。


推荐