每個學程式的朋友,應該都是從印出「Hello World!」開始的吧~雖然我也不太知道來源或是從什麼時候開始。
我的第一個JavaFX程式
在官網上使用的開發工具是NetBeans IDE 7.1,不過現在(2013.1.23)已經更新到7.2版了,所以,檔案的截圖就會是7.2版的。(看起來一樣囉!)
/** Author:Letter Lin* Date:2013/01/23rld*/package hellowo;rt javafx.application.Application; impimp oort javafx.event.ActionEvent;r; import javafx.scene.Scene; impimport javafx.event.EventHandl eort javafx.scene.control.Button;ne; import javafx.stage.Stage; publiimport javafx.scene.layout.StackP ac class HelloWorld extends Application { /*cation.Application */ @Override public void start(Stag* JavaFX程式進入點在start method,類別要繼承javafx.appl ie primaryStage) { Button btn = new Button(); btn.setText("Say 'Hello World'");() {btn.setOnAction(new EventHandle r @Overridepublic void handle(ActionEvent event) {System.out.println("Hello World!");root = new S} }); StackPan etackPane(); root.getChildren().add(btn);primaryStage.setTitle("Hello World!");Scene scene = new Scene(root, 300, 250); primaryStage.setScene(scene); primaryStage.show(); } /*tic void main(String[] args) { launch(args);* JavaFX的main() method是用來執行jar檔使用。單純的JavaFx程式可以不需要。 */ public st a }}
上面的程式碼,直接在NetBeans選擇新專案,如果不改專案名稱,只要按下一步(Next)和FINISH就可以完成了~
JavaFX應用程式的基本架構
JavaFX應用程式基本架構(節錄至http://docs.oracle.com/javafx/2/get_started/hello_world.htm) |
- 所有的JavaFX應用程式主類別都需要繼承javafx.application.Application的類別,而且程式進入點不再是main(),而是start()。
- JavaFX應用程式定義的使用者介面容器(user interface container)有stage和sence。stage是最高層級的JavaFX容器,而sence是用來承載所有JavaFX程式內容的容器,要顯示可視部分也是依靠sence來定義像素。
- JavaFX在畫面呈現上,是利用了一層層的節點(Nodes)來作為控制,在這個例子裡,StackPane就是root節點,當使用者想要變更畫面尺寸的時候,便是由它來負責。Botton是子節點(child node),由它來控制按按鈕及之後的文字顯示。
- main()雖然不再是必要的,但是保留在JavaFX應用程式裡也有好處:可以在沒有不支援JavaFX的機器上運行JAR檔,另外,swing應用程式也需要main()。
程式運行結果
運行結果(節錄至http://docs.oracle.com/javafx/2/get_started/hello_world.htm) |
按下RUN之後就會看到畫面出現,按下中間的按鈕,會在下方output的視窗看到Say Hello World。
備註:文章是看著官網自己翻譯出來的,但不是逐字翻譯,如果有建議,希望mail給我,作為修改的參考。