欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javaFX基础

程序员文章站 2024-02-05 12:09:28
...

⦁ javaFx基础
⦁ 一、javaFx基础
⦁ 1.javaFx生命周期
⦁ Application.init() 应用启动前通过launcher thread调用
⦁ Application.start(Stage stage) 开启应用的方法,方法中定义各种屏幕场景
⦁ Application.stop() 方法在应用被关闭时触发(如关闭屏幕按钮)
⦁ 启动的大体过程:main方法中调用静态方法lauch(),该方法在内部创建javaFx所需线程,开启生命周期等
⦁ 2.Stage Class用来定义UI界面,继承在Window
⦁ (1)stage 常用属性:fullScreen fullScreenExitHint退出按键 fullScreenExitHint退出提示; titil,width,height等;其父类window还有其他一些UI相关属性;
⦁ (2)所有属性都有getter和setter,但是并非是pojo那种
(3)Stage.initStyle(StageStyle.UNIFIED);设置基础样式
⦁ 3.javaFx工具包的设计
⦁ (1)大概分三层: 本地层(类似于native方法),私有层,公共层,开发只用到公共层类和方法,原生和私有不用
·
三、Scene Graph 场景图
1.场景图中节点的包含关系,即一个javafx 的结构
javaFX基础

eg: 对应代码结构
HBox hBox = new HBox(); //继承parent
hBox.getChildren().add(new Button("Button1"));//添加节点
Scene scene = new Scene(hBox);//scene中添加parent
stage.setScene(scene)//stage中set一个scene

2.事件处理:
i.所有输入事件都继承自InputEvent类添加事件过滤器时可选择不同类型事件进行监听处理
javaFX基础

eg:
scene.addEventFilter(MouseEvent.MOUSE_CLICKED, event -> {
    scene.setFill(Color.GREEN);
    System.out.println(scene.getFill());
});

3.布局窗格
Region 继承parent ,Pane继承Region,HBOx等布局元素继承Pane
4.Node基本属性,一些简单应用

eg:
HBox hBox = new HBox();
/*字体居中*/
hBox.setAlignment(Pos.CENTER);
//内容的水平间距
hBox.setSpacing(24);
Button myButton = new Button("!press me");
//设置节点的唯一id
myButton.setId("myButton");
CheckBox checkBox = new CheckBox();
//设置不透明度
checkBox.setOpacity(0.7);
/*映射,设置倒映*/
checkBox.setEffect(new Reflection());
/*鼠标点击事件*/
myButton.setOnMouseClicked(event -> {
    this.checkBoxShow(scene,checkBox.getId());
});
//设置任意点击事件、接触事件、按键事件等
checkBox.setOnAction(event -> {
    myButton.setVisible(!myButton.isVisible());
});
//通过id找scene中某个节点
Node node = scene.lookup("#" + id);
//设置节点可见性
node.setVisible(!node.isVisible());

四、场景图中布局和转换节点
1 添加转化 scene支持四种
Scaling 缩放、Rotation旋转、Translation平移 、Shearing剪切、Affine放射

eg:
Button button = new Button("买它!");
//布局,将子元素布局在上下左右中几个方向上
BorderPane borderPane = new BorderPane();
borderPane.setCenter(button);

//缩放和旋转需要定义滑块,除非可触摸设备,这里定义滑块最小最大和初始值
Slider sliderZoom = new Slider(0.1,2,1);
/*这里定义的本身就是缩放比例,而非尺寸,这里是实现大小缩放的关键。通过滑块控制缩放属性值*/
sliderZoom.valueProperty().addListener(e->{
    button.setScaleY(sliderZoom.getValue());
    button.setScaleX(sliderZoom.getValue());
});
相关标签: java基础