当前位置: 首页 > 知识库问答 >
问题:

JavaFX和IntelliJ没有错误,尽管文档中说我应该有一些错误

鲜于喜
2023-03-14

我目前正在学习本教程:https://openjfx.io/openjfx-docs/(JavaFX和IntelliJ IDEA)。我使用Intellij 2021.3.2。

但这里开始奇怪的事情(我对编程非常陌生,所以如果听起来很愚蠢,我很抱歉)。“您还可以将语言级别设置为11或更高。”我没有这个选择。因为是“可以”,我觉得这没什么大不了的,但如果有人能解释这是怎么回事?只是出于好奇,因为我刚刚开始学习教程,我只懂了一半。

所以当他们说“将JavaFX 17 SDK作为库添加到项目中”时,我不知道该怎么办。我也不知道该怎么做来修复红色的东西。

一切正常!你知道我没有抱怨,但我想多了解一点正在发生的事情。

谢谢你的帮助,我很迷茫,感觉自己什么都不懂。

共有1个答案

屈浩波
2023-03-14

openjfx教程中使用Idea开始使用JavaFX的当前留档是不正确的,至少对于最近的Idea版本(2021.3)来说是这样。

本教程的编写就像创建了一个新的Java项目,而不是一个新的JavaFX项目。一旦创建了一个新的JavaFX项目,本教程中其余的大部分步骤要么是多余的,要么是错误的。

第一步,“创建一个JavaFX项目”不仅仅是“创建一个Java项目”,这就是为什么其他所有内容都不同于本教程的原因。

一个更好的教程开始与JavaFX的想法,是官方的想法留档:

  • 创建一个新的JavaFX项目。

创建新Java项目和创建新JavaFX项目之间的区别

新的JavaFX项目:

>

  • 为Maven(pom.xml)或Gradle(build.Gradle)提供构建脚本。

    为JavaFX库、图形、控件和fxml添加适当的依赖项。

    提供可以立即运行的示例应用程序和控制器代码。

    示例项目是模块化的,并提供了module-info.java

    由于该程序是模块化的,依赖项通过maven下载并由IDE识别,因此不需要为模块路径和添加模块手动配置VM运行时选项。

    Idea将识别Maven或Gradle项目,并自动将初始的可传递依赖库与Idea项目同步。

    Idea Maven工具窗口中有一些选项,可以让您同步对依赖库或javadoc和库中源代码的进一步更改。

    选择一个JDK并将其附加到项目,如果尚未存在,则自动下载所选的JDK版本。

    为项目设置适当的语言级别。

    当你只使用创建新Java项目选项时,它不会做任何这些事情,所以你需要手动做一些事情,这就是本教程的其余部分:

    >

  • 手动下载JDK并在SDK中进行配置。

    手动下载JavaFXSDK并将其库添加到项目中。

    手动配置VM模块参数。

    手动维护任何其他依赖项。

    手动关联javadoc和源代码

    手动编写基本应用程序的代码。

    手动设置项目语言级别。

    手动完成所有这些工作是更多的工作,更容易出错。对于许多刚开始使用JavaFX的人来说,手动工作通常会导致更糟糕的结果和更难维护的项目,所以我不推荐它。

    版本

    就要使用的版本而言,我建议使用JDK和JavaFX的最新稳定(非测试版)版本,无论您正在使用的任何教程中引用什么版本。

    您可以在新JavaFX项目向导生成的Maven文件中设置JavaFX版本,然后按Maven工具窗口中的按钮将Maven项目与Idea项目同步。

    语言级别设置

    这些在以后很重要,但在刚开始的时候却无关紧要。

    语言级别设置:

    >

  • 告诉编译器要将应用程序编译到哪个版本的java字节码。

    告诉IDE要执行哪些语言语法规则并提供帮助。

    如果只使用Java 17功能,该应用程序将不会在Java 11虚拟机上运行。

    您可以在Idea中手动定义设置:

    • 语言设置水平

    但最好在maven项目的编译器部分设置它们,并将项目与Idea同步,Idea也将在IDE中配置设置。

    IMO,将其设置为最新的稳定版本,并要求您的应用程序至少以该Java版本运行(您可以通过使用jlink或jpack将您选择的JRE版本与打包的应用程序捆绑在一起来强制执行)。

  •  类似资料:
    • 我正在使用IntelliJ IDEA Ultimate 2019.2开发一个Java w/gradle项目。 当我尝试运行JUnit测试时,会触发自动构建,并发出以下消息: 自动构建已完成并出现错误 在“问题”选项卡中,我看到了100多个错误,当我单击它们进行调查时,我可以看到这些错误不是真正的错误,编辑器的任何地方都没有红色的波形,如果我查看特定的错误(如java:找不到符号),我会确认它们是无

    • 如果使用此功能删除目录中的所有文件。 但是每当我这样做时,我都会收到这个错误消息: 警告:rmdir(directory/12)[function.rmdir]:delete_文件中没有这样的文件或目录。php “directory/12”是我要删除的目录的正确名称。我不明白为什么它说它不存在,因为它存在!奇怪的是,即使我收到了错误信息,目录还是被删除了。 所以我在for循环之前添加了一行代码,它

    • 我是一个初学者,所以请确保我正在开发的应用程序不是太复杂,只是一些基本的实验应用程序。 今天,我在处理的不同应用程序中不断遇到相同的错误:任务执行失败:“:app:compiledBugkotlin”。 我今天在演播室里肯定有关于kotlin的最新消息。这可能是更新的问题吗?其他人也有同样的经历吗?我不知道如何修理它。 Android没有在我的代码中标记任何错误,我已经确保构建中的依赖项是正确的。

    • 我一直从这段代码中得到这个错误,不知道为什么{“error:CastError:Cast to ObjectId对于模型\“Order\”的路径\“u id\”处的值\“confirmed\”失败 正如您所看到的,我甚至没有在这个查询中使用objectID。。。我不知道它为什么要退回这个

    • PC\AndroidStudioProjects\TabLayout\app\build\中间体\packaged_manifests\debug\AndroidManifest.xml:12: AAPT:错误:资源mipmap/ic_launcher_round(又名com.example.tablayout: mipmap/ic_launcher_round)未找到