1- 前提条件

在本文中,将学习如何在 Eclipse IDE 开发和执行JavaFX编程。

e(fx)eclipse

e(fx)eclipse是一组工具和必要的库,它们帮助您执行JavaFX编程,确保您已经作为插件将其安装在eclipse上了。 如果未安装e(fx)eclipse,可以在以下链接查看安装指南:

JavaFX Scene Builder

JavaFX Scene Builder是一种可视化设计工具,它允许通过拖放快速创建应用程序界面。 并且代码创建为XML格式的文件。 这是一个选项,为了执行JavaFX编程,最好也应该安装它。

如果还未安装JavaFX Scene Builder,可以在以下链接查看说明:

2-创建Hello World项目

打开Eclipse,并在Eclipse中选择:

File -&gt New -&gt Others..

创建一个项目名称为:HelloJavaFx,如下图中所示 -

项目创建成功以后,如下图中所示 -

还创建了Hello World示例代码,如下所示 -

package application

import javafx.application.Application

import javafx.stage.Stage

import javafx.scene.Scene

import javafx.scene.layout.BorderPane

public class Main extends Application {

@Override

public void start(Stage primaryStage) {

try {

BorderPane root = new BorderPane()

Scene scene = new Scene(root,400,400)

scene.getStylesheets().add(getClass().getResource(&quotapplication.css&quot).toExternalForm())

primaryStage.setScene(scene)

primaryStage.show()

} catch(Exception e) {

e.printStackTrace()

}

}

public static void main(String[] args) {

launch(args)

}

}

首先,让我们确保运行Hello World例子成功。 右键单击主类(Main)并选择:

Run As -&gt Java Application

JavaFX的Hello World应用正在运行,结果是一个空白的界面,如下:

3- Hello World示例说明

在上面的步骤中,您已成功创建并运行 JavaFX 的 Hello World 应用。

下图显示了舞台(Stage),场景(Scene),容器(Container),布局(Layout )和控件(Controls)之间的关系:

在JavaFX中,Stage是应用程序窗口,其中包含称为Scene的空间。 Scene包含界面的组件,如Button,Text,…或容器。

4- JavaFX Scene Builder

为了创建一个JavaFX应用程序界面,可以完全编写Java代码。 但是,需要这么多时间来做到这一点,JavaFX Scene Builder是一个可视化工具,允许您设计Scene的界面。 生成的代码是XML代码保存在*.fxml文件中。

5-使用JavaFX Scene Builder的示例

这是一个小例子,使用Scene Builder来设计应用程序界面。应用于该示例的MVC的模型如下所示:

在VIEW上显示它

用户使用CONTROLLER

操作数据(更新,修改,删除,..),MODEL上的数据已更改。

在VIEW上显示MODEL的数据。

下面我们来创建一个新的 MySecene.xml 文件。

File -&gt New -&gt Other…

输入文件名称 -

创建结果如下图所示 -

可以使用JavaFX Scene Builder打开fxml文件。

注意:确保已安装JavaFX Scene Builder,并将其集成到Eclipse中。

MyScene.fxml的界面设计屏幕如下:

位于场景上的组件:

拉伸面板 -

锚点面板 -

查找按钮并将其拖动到AnchorPane中:

将Button的ID设置为“myButton”,可以通过其ID从Java代码访问这Button。设置方法将在单击按钮时调用。

将TextField拖放到AnchorPane中。设置TextField的ID,将其作为“myTextField”新拖放到AnchorPane中,可以通过其ID在Java代码中访问这个TextField。

选择文件/保存以保存更改。并在窗口中选择“预览/显示预览”以预览您的设计。

显示结果如下 -

关闭Scene Builder窗口并在Eclipse上刷新项目。您可以查看此时MyScene.fxml文件中生成的代码:

&lt?xml version=&quot1.0&quot encoding=&quotUTF-8&quot?&gt

&lt?import javafx.scene.control.*?&gt

&lt?import java.lang.*?&gt

&lt?import javafx.scene.layout.*?&gt

&lt?import javafx.scene.layout.AnchorPane?&gt

&ltAnchorPane prefHeight=&quot309.0&quot prefWidth=&quot349.0&quot

xmlns:fx=&quothttp://javafx.com/fxml/1&quot xmlns=&quothttp://javafx.com/javafx/8&quot&gt

&ltchildren&gt

&ltButton fx:id=&quotmyButton&quot layoutX=&quot60.0&quot layoutY=&quot73.0&quot

mnemonicParsing=&quotfalse&quot onAction=&quot#showDateTime&quot prefHeight=&quot23.0&quot

prefWidth=&quot120.0&quot text=&quotShow Date Time&quot /&gt

&ltTextField fx:id=&quotmyTextField&quot layoutX=&quot60.0&quot layoutY=&quot155.0&quot /&gt

&lt/children&gt

&lt/AnchorPane&gt

将属性fx:controller添加到&ltAnchorPane&gt中,Controller将对位于AnchorPane内部的控件(如myButton和myTextField)有引用。

注意:application.MyController类将在以后创建。

控制器(Controller)

以下是 MyController.java 文件的内容 -

package application

import java.net.URL

import java.text.DateFormat

import java.text.SimpleDateFormat

import java.util.Date

import java.util.ResourceBundle

import javafx.event.ActionEvent

import javafx.fxml.FXML

import javafx.fxml.Initializable

import javafx.scene.control.Button

import javafx.scene.control.TextField

public class MyController implements Initializable {

@FXML

private Button myButton

@FXML

private TextField myTextField

@Override

public void initialize(URL location, ResourceBundle resources) {

// TODO (don&ampapost really need to do anything here).

}

// When user click on myButton

// this method will be called.

public void showDateTime(ActionEvent event) {

System.out.println(&quotButton Clicked!&quot)

Date now= new Date()

DateFormat df = new SimpleDateFormat(&quotyyyy-dd-MM HH:mm:ss&quot)

String dateTimeString = df.format(now)

// Show in VIEW

myTextField.setText(dateTimeString)

}

}

Main.java 文件的内容如下 -

package application

import javafx.application.Application

import javafx.stage.Stage

import javafx.scene.Scene

import javafx.scene.layout.BorderPane

import javafx.application.Application

import javafx.fxml.FXMLLoader

import javafx.scene.Parent

import javafx.scene.Scene

import javafx.stage.Stage

public class Main extends Application {

@Override

public void start(Stage primaryStage) {

try {

// Read file fxml and draw interface.

Parent root = FXMLLoader.load(getClass()

.getResource(&quot/application/MyScene.fxml&quot))

primaryStage.setTitle(&quotMy Application&quot)

primaryStage.setScene(new Scene(root))

primaryStage.show()

} catch(Exception e) {

e.printStackTrace()

}

}

public static void main(String[] args) {

launch(args)

}

}

执行上面的代码,得到以下结果 -

关于纠错补充网友(DX &lt475******2@qq.com&gt)

MyScene.fxml文档中有个onDragDetected属性,它指的是发生拖拽动作,不是点击动作,所以我原封不动尝试代码是错误的,怎么点击那个按钮都没有反应,拖拽那个按钮才有反应(报错)。 后来查阅官方文档才发现问题,这给我这个初学者造成了很大的困扰,希望能及时更正内容,应该改为onAction才对。

java fx 教程_JavaFX快速入门相关推荐

  1. java akka 教程_快速入门 Akka Java 指南

    快速入门 Akka Java 指南 Akka 是一个用于在 JVM 上构建高并发.分布式和容错的事件驱动应用程序的运行时工具包.Akka 既可以用于 Java,也可以用于 Scala.本指南通过描述 ...

  2. java fxml教程_JavaFX 初学入门(一):FXML嵌套与原始控件继承

    说明 之前由于做一个小项目需要用swing,结果swing把我折腾的够呛.后来得知有javaFX这个类似于C#中WPF形式的利用XML来写界面的框架之后,马上就转到javaFX上了.找过一些资料但是帮 ...

  3. Tomcat 教程之快速入门

    Tomcat 教程之快速入门 版本说明 本文使用 Tomcat 版本为 Tomcat 8.5.24. Tomcat 8.5 要求 JDK 版本为 1.7 以上. 简介 Tomcat 是什么 Tomca ...

  4. 好程序员Java培训分享如何快速入门Java编程

    好程序员Java培训分享如何快速入门Java编程,作为老牌编程语言,Java拥有广阔的市场应用,企业对Java人才的需求一直居高不下.有很多非专业.零基础的人想要学习Java却不知道怎么快速入门,接下 ...

  5. Python零基础入门教程( 快速入门)

    前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...

  6. ArcGIS教程——ArcGIS快速入门

    实例数据:https://pan.baidu.com/s/184wwCmWrJdb-qjxsT614EQ 密码:dowv ArcGIS for Desktop是一套完整的专业GIS应用程序,包含有Ar ...

  7. tensorflow2.0教程- Keras 快速入门

    tensorflow2.0教程-tensorflow.keras 快速入门 Tensorflow 2.0 教程持续更新: https://blog.csdn.net/qq_31456593/artic ...

  8. SWMM从入门到实践教程 03 快速入门案例的设施参数设置与批量设置

    文章目录 1 雨量计 1.1 雨量计基础设置 1.2 雨量计数据来源 2 汇水区 2.1 参数讲解 2.2 设置结果 3 检查井 3.1 参数讲解 3.2 批量设置 4 管道 4.1 参数讲解 4.2 ...

  9. SWMM从入门到实践教程 02 快速入门案例的绘制

    文章目录 1 建模准备 2 设置各类设施 2.1 添加雨量计 2.2 添加子汇水区(正方形) 2.3 绘制节点(圆形) 2.4 绘制管渠 2.5 添加排水口(三角形) 3 画面调节 1 建模准备 建模 ...

最新文章

  1. EFI BIOS下的磁盘管理工具Diskpart,Efifmt与Efichk(转)
  2. [转帖]Docker save and load镜像保存
  3. 远离疲倦,告别非理性思维
  4. 学习(踩坑)记录——新建工程
  5. SpringMVC自定义配置消息转换器踩坑总结
  6. java jvm理解_【java】之深入理解JVM
  7. Unity获取时间戳
  8. 网课答案公众号搭建-网课题库接口
  9. 9.12测试(二)——国际象棋
  10. 3DS MAX 导入骨骼动画插件
  11. 工作态度决定了工作结果
  12. JavaScript学习记录十六
  13. python sasl_Pyhive、SASL和Python 3.5
  14. 二层与三层交换机我知道,四层交换机是什么东西?
  15. 传奇SF刷元宝之迷失版本刷叠加材料
  16. lds天线技术流程图_一种镭雕镀金方法与流程
  17. 傅里叶变换、短时傅里叶变换、小波变换
  18. python制作动态时钟_python+pygame制作一个可自定义的动态时钟和详解
  19. 51Nod 1433 0和5
  20. 简单理解:人工智能、数据挖掘、模式识别、机器学习、深度学习

热门文章

  1. PreScan快速入门到精通第三十二讲基于PreScan进行毫米波雷达传感器仿真
  2. matlab生成三维分形,MATLAB生成分形树.ppt
  3. win10计算机不分区,win10系统自带无损分区且数据不丢失的处理方案
  4. 户外便携吹尘器方案浅析
  5. 微信公众号如何进行账号迁移?
  6. 函数的 smoothness 和 convexity
  7. SQL SERVER 2016安装部署
  8. Git版本回退的两种方式及回退方式推荐
  9. 计算机领域的所有SCI一区期刊
  10. Android之Keystore文件签名(获取查看apk签名)