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

Wiz*_*ard 13 java user-interface intellij-idea javafx-2

我目前正在使用普通的java项目(gradle项目),并希望将其转换为JavaFx项目,而无需将现有源重新导入到新的Javafx项目中.有没有办法实现这个目标?

jew*_*sea 12

没有什么可以转换的.

我不相信"普通"Java项目和JavaFX项目之间的理念存在任何差异.

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

这就是它应该如何,JavaFX只是Java.Oracle不会在其分发中区分JavaFX和Java,也不应在其项目类型中区分IDE.

我相信,在这种情况下,即使我错了,我说得对,如果我错了也没关系.

更新

所以我错了很重要:-)

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

?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl
Run Code Online (Sandbox Code Playgroud)

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

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

!?*.java;!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj
Run Code Online (Sandbox Code Playgroud)

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

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

你可能最好将你的构建基于Gradle或Maven等第三方工具. Idea使用这些外部构建工具(和其他工具)非常有效.使用第三方工具的优点是:

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

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

  • 是的,JavaFX几乎就是java.如果您使用的是fxml,这是一个新的xml资源,需要使用一些基础架构.这与普通的旧版香草Java SE应用程序的区别在于很小但很重要.我遇到的一个问题是IntelliJ没有将fxml文件从src目录复制到目标目录,因此getClass().getResource("MyFile.fxml")找不到它们.任何见解都表示赞赏. (6认同)