总结常用的Javafx功能及用法(下)

控件的绑定和监听

在主线程
这里是让控件(Lable,Circle…)和页面大小做一个绑定
1.创建一个圆

		Circle circle = new Circle();
        circle.setCenterX(250);
        circle.setCenterY(250);
        circle.setRadius(100);
        circle.setStroke(Color.BLACK);
        circle.setFill(Color.WHITE);

2.坐标绑定
让圆一直显示在页面中间,也就是让圆的中心坐标属性和scence的长宽做一个绑定

//让圆的中心坐标等于scene长度和宽度的一半
circle.centerXProperty().bind(scene.widthProperty().divide(2));
circle.centerYProperty().bind(scene.heightProperty().divide(2));

当我们缩小界面的时候,可以保证圆始终在页面的正中间
在这里插入图片描述
3.监听器
我们也可以尝试用监听器对stage进行监听,每当页面大小被更改,则内部对圆的坐标进行更改,完成同样的效果。

		//对窗口的宽度属性加上一个监听器
		//添加一个ChangeListener,每当ObservalEvalue的值发生变化时,就会通知它。
		stage.widthProperty().addListener(new ChangeListener<Number>() {
   
            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
   
       			//一旦窗口变化,这里做一个输出
                System.out.println("窗口宽度发生变化"+newValue);
                circle.setCenterX((Double) newValue/2);
            }
        });
        //对窗口高度属性加上监听器
		stage.heightProperty().addListener(new ChangeListener<Number>() {
   
            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
   
                circle.setCenterY((Double) newValue/2);
            }
        });

事件驱动编程

什么是事件驱动

点击一个按键,点击鼠标,拖拽鼠标,点击按钮,电脑执行了(#¥……@#¥)操作,这样一个过程叫事件驱动。

创建一个点击移动事件

这里举例点击按钮,让label实现向下移动20
1.创建Label和Button

		Label label = new Label("hello world");
        Button button = new Button("移动label");
        label.setLayoutX(200);
        label.setLayoutY(50);
        button.setLayoutX(200);
        button.setLayoutY(250);

2.添加场景布局

		AnchorPane root = new AnchorPane();
        root.getChildren().addAll(label,button);
        Scene scene = new Scene(root,500,500);
        stage.setTitle("移动事件");
        stage.getIcons().add(new Image("com/yu/abc/1.jpg"));
        stage.setScene(scene);
        stage.
  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值