Java FX 簡介 與 IDEA JavaFX 開發入門
目錄
本文環境: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/
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);
}
}
執行效果
相關文章
- chrome外掛開發簡介(一)——開發入門Chrome
- Docker簡介與入門Docker
- Idea開發Java WEB 應用入門教程薦IdeaJavaWeb
- Java開發桌面程式學習(九)——JavaFxTemplate JavaFx模版 更簡單進行JavaFx程式開發Java
- RxJava簡介與入門(一)RxJava
- HealthKit開發快速入門教程之HealthKit開發概述簡介
- JavaFX基礎:1: 簡介Java
- TensorFlow.NET機器學習入門【1】開發環境與型別簡介機器學習開發環境型別
- Java入門到實踐系列(1)——Java簡介Java
- 《Flink入門與實戰》簡介
- GraphQL 入門簡介
- ElasticSearch 入門簡介Elasticsearch
- CSS 入門簡介CSS
- ElasticSearch入門簡介Elasticsearch
- Docker入門簡介Docker
- QC入門簡介
- Express 入門簡介Express
- Emacs 入門簡介Mac
- Redis 入門 - 簡介Redis
- Git入門與開發Git
- 簡單的區塊鏈開發入門:Hyperledger Iroha介紹區塊鏈
- 更好的 java 重試框架 sisyphus 入門簡介Java框架
- Jaeger開發入門(java版)Java
- Fiddler 入門簡介
- 小白入門 - PHP簡介PHP
- Angular簡介和入門Angular
- Apache Spark 入門簡介ApacheSpark
- 版本控制入門簡介
- fx 簡單介紹 [Go Hack 2017]Go
- java webservice開發入門之一JavaWeb
- java webservice開發入門之二JavaWeb
- Java外掛開發入門示例Java
- Java基礎01Java開發入門Java
- GraphQL 快速入門【1】簡介
- Azure Terraform(一)入門簡介ORM
- GraphQL 入門: Apollo Client – 簡介client
- Kubernetes入門簡介
- 無人駕駛入門簡介