前言
本章接着之前的根据组件学习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");
}