当前位置: 首页 > 面试题库 >

从JavaFX开始-JavaFX版本和“开发模式”问题

邵璞
2023-03-14
问题内容

我正计划开始开发桌面应用程序,但是直到现在,对于我来说,desktop = swing。我对此进行了一些研究,发现自己遇到了一些问题:

  1. 我发现有很多JavaFX版本:

    • 人们说JavaFX 1.0已经过时了。
    • JavaFX 2.X非常好。
    • 现在是JavaFX 8(对吗?);

但是即使使用JDK 8(1.8.0)的最新NetBeans IDE版本(8.0),当我创建JavaFX应用程序时,它也开始使用JavaFX 2.2 –
JavaFX 8真的是JavaFX的新版本吗?还是人们说它只是因为他们使用了JavaFX 2.X和JDK 8吗?

  1. 关于版本的另一个问题,使用JavaFX X版本开发的应用程序是否可以与更高版本兼容?就像swing应用程序一样,如果您使用Java 5开发应用程序,它甚至可以在Java 8上运行。

  2. 关于开发模式,更具体地说,关于布局创建,我注意到有两种创建布局的方法:通过仅用Java进行编码,以及通过将Java类作为控制器(更多MVC方法)来创建XML文件(FXML),就像JSF应用程序。我应该选择哪一个?每个优点和缺点是什么?


问题答案:

我不确定为什么您会遇到带有JDK 1.8的JavaFX 2.2问题,因为JDK 8中包含JavaFX 8,并且默认情况下必须使用它。

只是为了快速介绍JavaFX以及它与Swing的区别。请遵循以下几点:

  1. 您将有机会使用JavaFX 2.0+中引入的 FXML 将视图与功能分离,而不必遵循用Java代码构建视图/ UI并将视图中的功能代码弄乱的传统。
  2. JavaFX具有强大的 CSS 集成,可让您装饰视图(这是 Swing 中所 没有的)
  3. 由于有了 SceneBuilder 支持,因此开发速度更快。

JavaFX 1 +,2 +和8+之间的区别

  1. JavaFX 1+基本上是一种称为JavaFX脚本的脚本语言,与Java语言有很大的不同。
  2. JavaFX 2.0改变了JavaFX的面貌。现在,所有JavaFX API都可以作为纯Java API使用。在此阶段,JavaFX还引入了FXML!
  3. JavaFX 8.0带来了JavaFX的新面貌,其中JavaFX被接受为 Java 8 的组成部分。

兼容性 -所有JavaFX应用程序都具有 向前兼容性 ,即 JavaFX 2.0+与Java 7、8及更高版本兼容 。尽管使用
JavaFX 8创建的 应用程序 与Java 7不兼容

JavaFX 1.3支持已从Java
1.7中取消。

发展模式

  1. JavaFX的提供了一个机会使用你的选择来构建应用程序-即使用 建筑用纯Java视图的传统方法 或使用 FXML
  2. JavaFX严格遵循MVC模式,将视图及其事件分开。使用 FXML 创建视图,并且控制器是Java文件。

从Oracle文档

从模型视图控制器(MVC)角度来看,包含用户界面描述的FXML文件是视图。
控制器是Java类,可以选择实现Initializable类,该类被声明为FXML文件的控制器。该模型由在Java端定义的域对象组成,您可以通过控制器将其连接到视图。

有关 FXML的 更多信息和 专业人士 ,请遵循:

简而言之,javafx脚本是在javafx 2.0之前使用的,不再使用!

如果您更熟悉Java中的编码UI,则可以使用此方法。但是,我个人不喜欢这种方法,因为当您的应用程序过于复杂时,它会使代码变得复杂。

JavaFX Script在JavaFX 2.0之前已在使用,并且不再使用

Javafx 2.0中引入了基于FXML的UI设计。这些帮助程序员使用MVC方法对javafx应用程序进行编码。在这里可以找到关于FXML的很好的介绍。

在Oracle文档的一部分中,为什么使用FXML

从模型视图控制器(MVC)角度来看,包含用户界面描述的FXML文件是视图。控制器是Java类,可以选择实现Initializable类,该类被声明为FXML文件的控制器。该模型由在Java端定义的域对象组成,您可以通过控制器将其连接到视图。

可以使用Scene Builder轻松设计FXML,Scene Builder是Javafx应用程序的Drag n Drop UI设计器。使用FXML具有以下优点:

您的应用程序遵循MVC结构,就像企业JavaEE应用程序一样。
表示层(UI)与应用程序层(逻辑)隔离开来,这使您可以轻松地look and feel在需要时更改应用程序的版本,就像网站一样!
FXML引入了scalability and maintainability您的应用程序。
我对您的建议是使用FXML。如果您不了解它们,请学习它们。这将是值得的!



 类似资料:
  • CompileSdkVersion compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。 需要强调的是修改 compileSdkVersion 不会改变运行时的行为。当你修改了 compileSdkVersion 的时候,可能会出现新的编译警告、编译错误,但新的

  • 我写信是为了获取有关JavaFX的一些信息。我使用SceneBuilder设计了一个应用程序,它有一个主要场景,由几个文本字段和用于浏览文件的按钮组成。程序运行后还有一个用于输出的文本区域。我在控制器的初始化方法中添加了更改侦听器,以便在更新输出文本区域时修改日志文件。 最初,我使用输出文本区域来显示日志文件,对其进行了测试。一旦我从主文件菜单中选择了“查看日志”菜单项,我就能够在这个输出文本区域

  • 如何在应用程序javafx的start方法中传递参数?实际上,我在另一个类中调用javafx应用程序的行是:

  • 我正在设置一个基于Java /JavaFX11的Maven项目,它应该可以在IntelliJ和Visual Studio Code中编辑。 我的JDK是11.0.3(Windows x64)从https://adoptopenjdk.net/. 这个球。xml对 我的app可以用IntelliJ中的“compiler:compile”和“exec:java”编译运行。所以第一步成功了。 现在在Vi

  • 1 逻辑流程 方案1: 微信消息通过中转平台转发给小能服务器 小能消息直接发送到微信服务器,小能维护Token 方案2: 微信消息通过中转平台转发给小能服务器 小能服务器消息直接发送到中转平台,中转平台维护真实Token,小能维护由平台提供给小能的Token 注(1): 此处逻辑为可选逻辑,详情参见 【小程序深度对接->上报用户信息】 2 集成步骤 2.1 添加发起会话按钮 <button ope

  • 术语说明 AppID AppID是轻应用/订阅号唯一识别标志,轻应用/订阅号管理员可在轻推管理后台中查看。 AppSecret AppSecret是给轻应用/订阅号分配的密钥,开发者需要妥善保存这个密钥,防止被恶意使用,为了安全,管理员也可以对此密钥进行修改,修改后前密钥失效。轻应用/订阅号管理员可在轻推管理后台中查看。 access_token access_token(身份令牌)是轻应用/订阅