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项目

代码实现

/**
 * 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<ActionEvent>() {
            @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);
    }
}

效果演示

Hello World

1、上面是使用 Java SE 的方式开发的 JavaFX 应用,完全是可以的,然而 JavaFX 作为一个强大的类库,有着自己的架构,很多内容也是固定的。

2、如同可以直接开发安卓项目一样,IDEA 也可以直接创建 JavaFX 应用

3、如果不使用 JavaSE 方式开发 JavaFX 的话,Eclipse 要安装插件才可以,但是 IDEA 直接可以开发

创建 JavaFX 应用

Controller:默认这个类里面是空的
Main:为整个应用的程序入口
sample.fxml:这是应用窗口的布局文件,也可以叫资源文件

Controller 默认内容是空的:

public class Controller {
}

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

<?import javafx.scene.layout.GridPane?>
<GridPane fx:controller="sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
</GridPane>

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);
    }
}

运行效果

 

  • 32
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚩尤后裔-汪茂雄

芝兰生于深林,不以无人而不芳。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值