我目前使用的是一个普通的Java项目(gradle项目),我想将其转换为一个JavaFX项目,而无需将现有源代码重新导入到一个新的Javafx项目中。
v09wglhw1#
没有要转换的内容。我不相信一个“普通”Java项目和一个JavaFX项目在Idea上有什么区别。当然,在Idea12.x+中有一个向导可以用来创建一个新的JavaFX项目,但我认为它所做的只是创建一个hello world应用程序样本--在初始创建之后,该项目的工作方式与其他Java项目没有任何不同。这是应该的,JavaFX只是Java。Oracle在其发行版中没有区分JavaFX和Java,在其项目类型中也不应该区分IDE。我相信,在这种情况下,即使我错了,我也足够正确,所以我错了也不重要。
更新
所以我错得很严重,这很重要:-)使用Idea 13.1.4,如果我使用File | New Project | Java创建一个新项目,有以下资源设置(File | Settings | Compiler):
File | New Project | Java
File | Settings | Compiler
?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl
也就是说,项目的资源只是被设置为只复制特定的文件类型。所以你可以修改它,通过添加对fxml和css的资源复制支持,来获得一些JavaFX项目所需的额外文件类型;即附加;?*.fxml;?*.css。有趣的是,如果您使用File | New Project | JavaFX创建一个新项目,则有以下资源设置:
;?*.fxml;?*.css
File | New Project | JavaFX
!?*.java;!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj
从本质上讲,它复制的不是源文件,而是一种文件黑名单集,而不是其他项目创建模板所使用的文件白名单集。真的很奇怪......无论如何,资源集是用户可配置的,所以你可以修改它们,因为你认为合适,一旦你这样做,你应该没有任何问题(我相信,但我以前错了;- )
建议-结合IDE使用第三方构建工具
您最好使用第三方工具(如Gradle或Maven)进行构建。*Idea与这些外部构建工具(和其他工具)配合使用效果非常好 *。使用第三方工具的优点是:1.使用这些工具的项目遵循一个约定,即资源被放置在特定的资源文件夹中,该文件夹中的所有内容都被视为要打包到构建输出中的资源。因此,这里的混乱较少。1.由此产生的项目更可移植,更容易被其他可能不使用Idea的开发人员使用。1.这些项目可以通过Jenkins等持续集成构建系统轻松构建。
mi7gmzs62#
一种解决方案是使用Scene Builder生成代码,然后将其集成到现有的IntelliJ项目中。虽然可以将其作为模块导入,但您也可以简单地将代码移动到需要的位置(对package语句进行适当的更正等)。如果您注意到javafx导入在您的项目中无法识别,请尝试以下解决方案:首先确保您已经按照tutorial中的初始步骤为JavaFX设置了IntelliJ。注意:下面我提到1.8,但这应该与1.7+工作。我推荐1.8+。其次,确保现有项目设置允许使用javaFX1.打开项目结构1.单击项目设置窗格下的项目1.确保Project SDK为1.8+。第三,确保为支持JavaFX的JDK配置模块1.打开项目结构1.单击项目设置窗格下的模块1.确保所使用的模块SDK支持javaFX,我再次使用JDK 1.8,但它应该与1.7一起工作。另外,请注意,如果您有一个maven项目,您可能需要将fxml放在一个特定的位置,“/main/resources/"。这对我很有效,我希望它能帮助你。
wribegjk3#
我遵循了那些步骤
Controller.java,Main.java and sample.fxml
A/user-interface/src
sample.fxml
sample.Controller
File | Project Structure | Modules
user-interface
dependencies
+
注意:你可以跳过添加模块的依赖项,让intellij为你做,只需要在旧模块中输入一个类的名称,alt+enter(灯泡魔术)-〉add module depenency
alt+enter
add module depenency
p5fdfcr14#
所以经过大量的谷歌搜索,我终于发现了自己!如果你可以在IntelliJ中创建新的Javafx项目,并且它工作得很好,但是当你打开一个普通的java应用程序时,碰巧使用了javafx就不起作用了(因为java不想解析javafx引用)。
**对我来说是这样的:**你必须将"jre/lib/ext/jfxrt.jar"文件添加到位于我的windows机器上的IDEA内的模块类路径中,这是C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.3\jre64\lib\ext\jfxrt.jar。
"jre/lib/ext/jfxrt.jar"
C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.3\jre64\lib\ext\jfxrt.jar
现在它终于建成了!
wljmcqd85#
请记住,您的源文件夹必须正确设置。请参阅屏幕截图以了解我的意思。
5条答案
按热度按时间v09wglhw1#
没有要转换的内容。
我不相信一个“普通”Java项目和一个JavaFX项目在Idea上有什么区别。
当然,在Idea12.x+中有一个向导可以用来创建一个新的JavaFX项目,但我认为它所做的只是创建一个hello world应用程序样本--在初始创建之后,该项目的工作方式与其他Java项目没有任何不同。
这是应该的,JavaFX只是Java。Oracle在其发行版中没有区分JavaFX和Java,在其项目类型中也不应该区分IDE。
我相信,在这种情况下,即使我错了,我也足够正确,所以我错了也不重要。
更新
所以我错得很严重,这很重要:-)
使用Idea 13.1.4,如果我使用
File | New Project | Java
创建一个新项目,有以下资源设置(File | Settings | Compiler
):也就是说,项目的资源只是被设置为只复制特定的文件类型。所以你可以修改它,通过添加对fxml和css的资源复制支持,来获得一些JavaFX项目所需的额外文件类型;即附加
;?*.fxml;?*.css
。有趣的是,如果您使用
File | New Project | JavaFX
创建一个新项目,则有以下资源设置:从本质上讲,它复制的不是源文件,而是一种文件黑名单集,而不是其他项目创建模板所使用的文件白名单集。真的很奇怪......无论如何,资源集是用户可配置的,所以你可以修改它们,因为你认为合适,一旦你这样做,你应该没有任何问题(我相信,但我以前错了;- )
建议-结合IDE使用第三方构建工具
您最好使用第三方工具(如Gradle或Maven)进行构建。*Idea与这些外部构建工具(和其他工具)配合使用效果非常好 *。使用第三方工具的优点是:
1.使用这些工具的项目遵循一个约定,即资源被放置在特定的资源文件夹中,该文件夹中的所有内容都被视为要打包到构建输出中的资源。因此,这里的混乱较少。
1.由此产生的项目更可移植,更容易被其他可能不使用Idea的开发人员使用。
1.这些项目可以通过Jenkins等持续集成构建系统轻松构建。
当然,使用第三方构建工具的缺点是学习它们的复杂性(和许多怪癖),因为有时它们可能是相当野兽。所以我认为这是一个权衡-小的,个人探索性的项目不需要它们,较大的项目或您打算与他人分享的项目可以从使用这些工具中受益。
mi7gmzs62#
一种解决方案是使用Scene Builder生成代码,然后将其集成到现有的IntelliJ项目中。虽然可以将其作为模块导入,但您也可以简单地将代码移动到需要的位置(对package语句进行适当的更正等)。如果您注意到javafx导入在您的项目中无法识别,请尝试以下解决方案:
首先确保您已经按照tutorial中的初始步骤为JavaFX设置了IntelliJ。注意:下面我提到1.8,但这应该与1.7+工作。我推荐1.8+。
其次,确保现有项目设置允许使用javaFX
1.打开项目结构
1.单击项目设置窗格下的项目
1.确保Project SDK为1.8+。
第三,确保为支持JavaFX的JDK配置模块
1.打开项目结构
1.单击项目设置窗格下的模块
1.确保所使用的模块SDK支持javaFX,我再次使用JDK 1.8,但它应该与1.7一起工作。
另外,请注意,如果您有一个maven项目,您可能需要将fxml放在一个特定的位置,“/main/resources/"。
这对我很有效,我希望它能帮助你。
wribegjk3#
我遵循了那些步骤
Controller.java,Main.java and sample.fxml
)中的代码复制到src目录下的(A)项目中的模块中,如A/user-interface/src
中所示sample.fxml
中发现一个错误,因为它引用控制器类为sample.Controller
,将其更改为'Controller' only。File | Project Structure | Modules
user-interface
模块dependencies
选项卡+
标记将旧的非GUI模块添加为模块依赖项注意:你可以跳过添加模块的依赖项,让intellij为你做,只需要在旧模块中输入一个类的名称,
alt+enter
(灯泡魔术)-〉add module depenency
p5fdfcr14#
所以经过大量的谷歌搜索,我终于发现了自己!
如果你可以在IntelliJ中创建新的Javafx项目,并且它工作得很好,但是当你打开一个普通的java应用程序时,碰巧使用了javafx就不起作用了(因为java不想解析javafx引用)。
**对我来说是这样的:**你必须将
"jre/lib/ext/jfxrt.jar"
文件添加到位于我的windows机器上的IDEA内的模块类路径中,这是C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.3\jre64\lib\ext\jfxrt.jar
。现在它终于建成了!
wljmcqd85#
请记住,您的源文件夹必须正确设置。请参阅屏幕截图以了解我的意思。