前言
本章接着之前的根據組件學習javaFX的系列教程,本章爲javaFX視頻播放器的簡單實現。
javaFX結構組件
- ** javaFX基礎(javaFX系列之launcher啓動器:兩種啓動javaFX的方式及launch(args[])參數設置和獲取)<—本章**
- 場景圖(Scenen graph)
- 圖形系統(Graphics System)
- Glass窗體工具包(Glass window toolkit)
- 多媒體和圖形(media and images)
- web組件(web component)
- css樣式
- UI控件(UI controls)
- 佈局(layout)
- 視覺特效(visual effects)
- javaFX線程模型結構分析
參考
本章有且只參考了oracle javaFX官方文檔:
https://docs.oracle.com/javase/8/javafx/media-tutorial/overview.htm#JFXMD101
launcher簡述
launcher啓動器是用於啓動javaFX窗口、初始化資源和創建三個javaFX線程等等一系列操作的程序初始化入口。
兩種方式啓動javaFX
javaFX有兩種方式可以啓動,一種是由Application實現類中的main方法直接執行launch(args[])啓動;次之就是通過Application的靜態方法Application.launch(class<?> cla, args[]);
launch(args[])方法其實內部還是調用的Application.launch(class<?> cla, args[]);方法,這是因爲javaFX需要當前Application實現類作爲頂級加載基類。
Application實現類內部launch方式啓動
調用方式
launch(String args[]);
使用示例
public class JavaFxVideoPlayer extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
Console.log(this.getClass().getSimpleName()+"開始顯示窗口,順序:4,當前線程:"+Thread.currentThread().getName());
primaryStage.setTitle("demo窗口");
primaryStage.setScene(scene);
primaryStage.setFullScreen(false);//全屏
primaryStage.sizeToScene();
primaryStage.requestFocus();
primaryStage.setResizable(true);
primaryStage.show();
}
public static void main(String[] args) {
launch(new String[]{"--width=1280","--height=720","--src=http://localhost:81/big_buck_bunny.mp4"});
//launch(args);
}
}
靜態launch方式啓動
調用方式
Application.launch(Class<?> cla,String args[]);
使用示例
public static void main(String[] args) {
Application.launch(JavaFxVideoPlayer.class,new String[]{"--width=1280","--height=720","--src=http://localhost:81/big_buck_bunny.mp4"});
}
lancher參數
參數設置格式
–name=value
參數設置使用示例
插入初始化參數
Application.launch( JavaFxVideoPlayer.class,
new String[]{
"--width=1280",
"--height=720",
"--src=http://localhost:81/big_buck_bunny.mp4"
}
);
獲取參數方式
Map<String, String> params=getParameters().getNamed();
return params.get(key);
獲取參數示例
/**
* 獲取lancher中傳入的args參數
* @param key
* @return
*/
private String getParam(String key) {
Map<String, String> params=getParameters().getNamed();
return params.get(key);
}
//在Application實現類中獲取args傳參
@Override
public void init() throws Exception {
src=getParam("src");
String width=getParam("width");
String height=getParam("height");
}