我必须缩放ScrollPane内的pdf文件。 ScrollPane本身位于StackPane内部 在开始时,我缩放我的pdf以适应我的ScrollPane的宽度。因此,pdf-height不符合ScrollPanes的高度 我已经设法通过在使用鼠标滚轮时更改我的scaleFactor来进行缩放。不幸的是,我无法放大特定点 我想我必须根据鼠标坐标更改ScrollPanes值,但我找不到正确的计算。有人可以帮帮我吗?
例如我试过
scrollPane.setVvalue(e.getY() / scrollPane.getHeight())
使用这行代码,我的视图会向上或向下跳跃,具体取决于我是单击视口的上限还是下限。
我也明白它必须表现得那样,但我无法弄清楚必须添加/更改的内容。
我使用Jpedal来显示我的pdf
希望你明白我在寻找什么。 如果您需要更多信息,请告诉我。
修改:
这是我设法拖动的剪辑。
eventRegion.addEventFilter(MouseEvent.MOUSE_PRESSED, e -> {
dragStartX = e.getX();
dragStartY = e.getY();
});
eventRegion.addEventFilter(MouseEvent.MOUSE_DRAGGED, e -> {
double deltaX = dragStartX - e.getX();
double deltaY = dragStartY - e.getY();
scrollPane.setHvalue(Math.min(scrollPane.getHvalue() + deltaX / scrollPane.getWidth(), scrollPane.getHmax()));
scrollPane.setVvalue(Math.min(scrollPane.getVvalue() + deltaY / scrollPane.getHeight(), scrollPane.getVmax()));
e.consume();
});
我认为通过设置Hvalue和Vvalue可以以类似的方式缩放到鼠标位置。
我有什么想法可以计算这些值吗?
答案 0 :(得分:1)
This example具有JavaFX 8代码,用于可缩放的ScrollPane
缩放到鼠标指针,重置缩放并适合矩形的宽度,这可以是任何Node
。请务必查看问题的答案,以使fitWidth()
正常工作。我现在正在使用此解决方案ImageView
,它很光滑。
答案 1 :(得分:1)
仅针对“缩放鼠标”的所有相关问题。
我遇到了同样的问题,我想出了以下代码片段。
library(dplyr)
Data_have %>%
group_by(ID) %>%
transmute(Gender= first(na.omit(Gender_NA)))
# ID Gender
# (dbl) (fctr)
#1 1 m
#2 1 m
#3 1 m
#4 2 f
#5 2 f
#6 2 f
#7 3 m
#8 3 m
#9 3 m
基本思想是将基础窗格移动到缩放前的那个位置。重要的是,我们计算鼠标位置到窗格的局部坐标系。在比例之后,我们再做一次并计算差异。一旦我们知道了差异,我们就能够回到窗格。我认为这个解决方案非常简单直接。
我在JavaFX中的设置如下:我有一个javafx.scene.layout.BorderPane作为我的javafx.scene.Scene的root。在中心,我放了一个窗格。这将是我行动的窗格(即将其他节点放入..zoom,move..etc。)如果有人对我的实际操作感兴趣,请发邮件给我。
良好的编程!