java鼠标滚动量,Java FX中的鼠标滚动

I want to use mouse scroll to make circle bigger (mouse-scroll-up) and circle smaller (mouse-scroll-down).

I have existing code to change circle radius smaller already with mouse middle button, but my question would be:

How can I use mouse-scroll-up and mouse-scroll-down to do the same thing?

I have googled, it could be done somehow with ScrollEvent, but I can't understand this very well.

解决方案

Answering to your question

How can I use mouse-scroll-up and mouse-scroll-down to do the same thing?

Use a ScrollListener on the circle and use the ScrollEvent reference to get the DeltaY.

Create a zoomfactor to calculate the zoom factor you want to have.

Apply this factor to the Scale property of your node.

Complete Example

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Node;

import javafx.scene.Scene;

import javafx.scene.input.ScrollEvent;

import javafx.scene.paint.Color;

import javafx.scene.shape.Circle;

import javafx.stage.Stage;

public class ZoomInOutCircles extends Application {

@Override

public void start(Stage primaryStage) {

Group root = new Group();

Scene scene = new Scene(root, 350, 300);

primaryStage.setTitle("Dots");

primaryStage.setScene(scene);

Circle circle = new Circle(175, 150, 10, Color.BLUE);

addMouseScrolling(circle);

root.getChildren().add(circle);

primaryStage.show();

}

public void addMouseScrolling(Node node) {

node.setOnScroll((ScrollEvent event) -> {

// Adjust the zoom factor as per your requirement

double zoomFactor = 1.05;

double deltaY = event.getDeltaY();

if (deltaY < 0){

zoomFactor = 2.0 - zoomFactor;

}

node.setScaleX(node.getScaleX() * zoomFactor);

node.setScaleY(node.getScaleY() * zoomFactor);

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值