JAVAFX-2 開發應用


理解javafx 架構

● 場景圖(Scene Graph)
● JavaFX功能的公開API(Java Public APIs for JavaFX Features)
● 圖形系統(Graphics System)
● Glass窗體工具包(Glass Windowing Toolkit)
● 多媒體和圖像(Media and Images)
● Web組件(Web Component)
● CSS
● UI控件(UI Controls)
● 布局(Layout)
● 2-D和3-D轉換(2-D and 3-D Transformations)
● 視覺特效(Visual Effects)

場景圖(Scene Graph)

  • 它是構建JavaFX應用的入口。它是一個層級結構的節點樹,表示了所有用戶界面的視覺元素。它可以處理輸入,並且可以被渲染。
    在場景圖中的一個元素被稱為一個節點(Node)。每個節點都有一個ID、樣式類和包圍盒(bounding volume)。除了根節點之外 ---- 簡而言之 根據節點值實現渲染
  • 以下特性
    ● 效果(Effects),例如模糊和陰影
    ● 不透明度(Opacity)
    ● 變換(Transforms)
    ● 事件處理器(Event handlers,例如鼠標、鍵盤和輸入法)
    ● 應用相關的狀態(Application-specific state)

用代碼實際理解基本使用過程

  • 繼承application 覆蓋 start() 方法
  • 我在代碼里說明

package demo;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class P1 extends Application{

@Override
public void start(Stage primaryStage) throws Exception {
		//構建面板
		StackPane root = new StackPane();
		//創建場景
		Scene scene = new Scene(root);
	    //加入舞台
		primaryStage.setHeight(400);
		primaryStage.setWidth(500);
		primaryStage.setResizable(false);
		primaryStage.setScene(scene);
		primaryStage.show();
}
/**
 * 嵌入了JavaFX代碼的Swing應用程序仍需要main()方法
 * @param args
 */
public static void main(String[] args) {
	launch(args);
}

}

  • 硬編碼的方式創建應用(不推薦)
    下面 在demo中創建一個 text 組件 button 組件
    package demo;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class P1 extends Application {

private Button btn;
private Text textFiled;

@Override
public void start(Stage primaryStage) throws Exception {
	// 構建面板
	AnchorPane root = new AnchorPane();
	// 創建場景
	Scene scene = new Scene(root);
	// 組件初始化
	textFiled = new Text("fx");
	btn = new Button("cilck");
	// 綁定按鈕事件
	btn.setOnAction((e) -> {
		textFiled.setText("按鈕被點擊");
	});
	// 加入面板
	root.getChildren().addAll(textFiled,btn);
	AnchorPane.setLeftAnchor(btn,100.0);
	AnchorPane.setBottomAnchor(btn,100.0);
	AnchorPane.setTopAnchor(textFiled, (double) 20);
	AnchorPane.setLeftAnchor(textFiled, (double) 20);
	// 加入舞台
	primaryStage.setHeight(400);
	primaryStage.setWidth(500);
	primaryStage.setResizable(false);
	primaryStage.setScene(scene);
	primaryStage.show();
}

/**
 * 嵌入了JavaFX代碼的Swing應用程序仍需要main()方法
 *
 * @param args
 */
public static void main(String[] args) {
	launch(args);
}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM