gpt4 book ai didi

java - Java FX 中的鼠标滚动

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:16 25 4
gpt4 key购买 nike

我想使用鼠标滚动使圆变大(mouse-scroll-up)和变小(mouse-scroll-down ).

我有现有的代码可以用鼠标中键改变圆半径,但我的问题是:

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

我用谷歌搜索过,它可以用 ScrollEvent 以某种方式完成,但我不太明白这一点。

最佳答案

回答你的问题

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

  • 在圆圈上使用 ScrollListener 并使用 ScrollEvent获取 DeltaY 的引用。
  • 创建一个 zoomfactor 来计算您想要的缩放因子。
  • 将此因素应用于节点的 Scale 属性。

完整示例

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);
});
}
}

关于java - Java FX 中的鼠标滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29735651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com