W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
以下代碼顯示了如何在JavaFX中創(chuàng)建一個窗口并添加一個按鈕控制到它。 它還顯示如何處理按鈕的點擊事件。
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; //w w w.j ava 2s . c o m public class Main extends Application { @Override public void start(Stage primaryStage) { Button btn = new Button(); btn.setText("Say "Hello World""); btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); 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) { launch(args); } }
上面的代碼生成以下結(jié)果。
JavaFX應(yīng)用程序的Main類擴展了 javafx.application.Application
類。 start()
方法是所有JavaFX應(yīng)用程序的主要入口點。
javafx.application.Application類提供應(yīng)用程序生命周期功能,如在運行時初始化,啟動,啟動和停止。
應(yīng)用程序類為Java應(yīng)用程序啟動與主線程分離的JavaFX GUI組件提供了一種方法。
main()
方法通過傳入JavaFX應(yīng)用程序Application.launch()方法的命令行參數(shù)。
訪問傳遞到 launch()
方法中的任何參數(shù)我們可以調(diào)用Application類的getParameters()方法。
執(zhí)行 Application.launch()
方法后,JavaFX應(yīng)用程序?qū)⑦M入就緒狀態(tài),并且框架內(nèi)部調(diào)用start()方法來啟動。
調(diào)用 start()
方法后,該程序在JavaFX線程中運行,而不是在主線程上運行一個JavaFX javafx.stage.Stage
對象是可供開發(fā)人員使用。
以下代碼顯示了覆蓋的應(yīng)用程序start()方法:
@Override public void start(Stage primaryStage) {...}
JavaFX應(yīng)用程序通過階段和場景來定義用戶界面容器。
JavaFX Stage
類是頂層JavaFX容器。JavaFX Scene
類是所有內(nèi)容的容器。
Stage和Scene與Swing名稱相比奇怪命名,例如JFrame,JPanel。
JavaFX API將事物建模為劇院或戲劇。
在劇院演員在觀眾面前演奏。一場戲由一對多的場景組成。所有場景都在舞臺上進行。
在JavaFX中, Stage
等效于類似的應(yīng)用程序窗口到Java Swing API JFrame
或 JDialog
。
Scene對象是一個內(nèi)容窗格,類似于Java Swing的JPanel。每個場景可以保存子節(jié)點對象。
在JavaFX中,場景內(nèi)容表示為a節(jié)點的分層場景圖。
JavaFX節(jié)點是所有場景圖形節(jié)點的基本基類。
節(jié)點可以縮放,變換,翻譯和具有效果。
最常用的節(jié)點是UI控件和Shape對象。
場景圖可以通過使用容器來包含子節(jié)點類如Group或Pane類。
在上面的代碼中,根節(jié)點是一個 StackPane
對象,這是一個可調(diào)整大小的布局節(jié)點。
根節(jié)點包含一個子節(jié)點,一個 Button
。
按鈕有一個事件處理程序,當(dāng)按下按鈕時打印消息。
一旦子節(jié)點已添加到我們的根Group通過 getChildren()。add()
方法,我們設(shè)置primaryStage的場景并調(diào)用show()方法顯示JavaFX應(yīng)用程序窗口。
默認(rèn)情況下,窗口將允許用戶最小化,最大化和退出應(yīng)用程序。
以下是設(shè)置場景并顯示JavaFX應(yīng)用程序窗口(Stage)的代碼:
primaryStage.setScene(scene); primaryStage.show();
JavaFX應(yīng)用程序不需要main()方法當(dāng)使用JavaFX Packager工具創(chuàng)建JAR文件時。
JavaFX Packager工具會將JavaFX Launcher嵌入JAR文件中。
以下代碼顯示如何處理命令行參數(shù)。
import java.util.List; //from w w w .j a v a 2 s . c o m import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.effect.SepiaTone; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.paint.Color; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Title"); final Parameters params = getParameters(); final List<String> parameters = params.getRaw(); final String imageUrl = !parameters.isEmpty() ? parameters.get(0) : ""; primaryStage.show(); } }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: