IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门

目录
Java FX 简介
Hello Friend
Hello World
本文环境:IDEA 14 + Java JDK 1.8
Java FX 简介 1、JavaFX 是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计、创建、调试和部署富客户端程序,并且和 Java 一样跨平台。
2、Javafx 是 Oracle 在2008年主推的下一代 GUI 框架,功能强大,并且持续更新
3、Swing 是Java 比较老的GUI,样式难被用户接受,且 Oracle已经明确说明不再更新Swing。显然比swing更古老的awt就更不用说了
4、JavaFX 仍然可以使用 Swing 程序,通过SwingNode即可
5、原来开发 JavaFX 程序,需要单独下载 JavaFX 的SDK,但是现在不需要了。从 JDK 7u6 开始,JavaFX 被内置到 Java SE中;从Java8开始,JavaFX 版本更新为JavaFX8。现在开发Java FX程序可以像以前开发awt、swing一样直接进行开发
Java FX 历史

JavaFX 即可以用来开发桌面程序也可以开发移动设备上的程序,但移动应用平台都有自己的SDK,比如开发Android和ISO应用都会使用原生地API,所以JavaFX目前主要用于开发桌面应用程序!
JavaFX 2.0之后的版本摒弃了JavaFX Script语言,而作为一个Java API来使用。因此使用JavaFX平台实现的应用程序将直接通过标准Java代码来实现。
从JDK 7u6 开始,JavaFX被内置到Java SE中,原来开发JavaFX程序,需要单独下载JavaFX的SDK,但现在不需要了。
从Java JDK8 开始,JavaFX的版本也更新为JavaFX8。
6、学习网址
JavaFX中文网:http://www.javafxchina.net/main/
易百教程:https://www.yiibai.com/javafx/
Hello Friend 创建Java SE项目
IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门
文章图片

IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门
文章图片

代码实现
/** * Created by Administrator on 2018/6/22 0022. * 下面这些javafx.*下面的API都是JDK8、JRE8中内置好的,直接调用即可 */ import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import java.util.concurrent.atomic.AtomicInteger; /** * Java作为GUI(图形化用户界面)程序 * 1、入口必须继承Application抽象类 */ public class HelloFriend extends Application { /** * atomicInteger:用于统计用户单击按钮的次数 */ private static AtomicInteger atomicInteger = new AtomicInteger(0); /** * 2、然后实现的它的start抽象方法 * * @param primaryStage */ @Override public void start(Stage primaryStage) {/**创建一个按钮控件 * 并设置按钮上的文字,同时为他绑定单击事件,鼠标点击按钮后,控制台输出"Hello Friend"*/ Button btn = new Button(); btn.setText("Say 'Hello Friend'"); btn.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { System.out.println(atomicInteger.addAndGet(1) + ":Hello Friend"); } }); /**创建一个堆栈面板,面板包含控件*/ StackPane root = new StackPane(); root.getChildren().add(btn); /**创建一个场景,场景包含面板*/ Scene scene = new Scene(root, 300, 250); /**最后将场景放入到舞台中,舞台包含场景<-场景包含面板<-面板包含控件*/ primaryStage.setTitle("Hello World"); primaryStage.setScene(scene); /**显示*/ primaryStage.show(); }public static void main(String[] args) { /** * GUI程序必须从入口的main方法进入并启动 * launch是Application中的,调用它则可启动此GUI程序了 */ launch(args); } }

效果演示
IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门
文章图片

Hello World 1、上面是使用 Java SE 的方式开发的 JavaFX 应用,完全是可以的,然而 JavaFX 作为一个强大的类库,有着自己的架构,很多内容也是固定的。
2、如同可以直接开发安卓项目一样,IDEA 也可以直接创建 JavaFX 应用
3、如果不使用 JavaSE 方式开发 JavaFX 的话,Eclipse 要安装插件才可以,但是 IDEA 直接可以开发
创建 JavaFX 应用
IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门
文章图片

Controller:默认这个类里面是空的
Main:为整个应用的程序入口
sample.fxml:这是应用窗口的布局文件,也可以叫资源文件
IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门
文章图片

Controller 默认内容是空的:
public class Controller { }

sample.fxml 是窗口的布局文件,可以看到下面的 网格面板标签关联了上面 的Controller 类

Main 入口类可以看到整个窗口默认是从布局文件进行加载布局的,然后设置了窗口的标题以及大小,但因为布局文件中没有定义内容,所以应用启动之后,窗口是空的。
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) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); primaryStage.setTitle("Hello World"); primaryStage.setScene(new Scene(root, 300, 275)); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

【IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门】运行效果
IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门
文章图片


    推荐阅读