我必須放大ScrollPane內部的pdf文件。 ScrollPane本身在StackPane中。
在開始時,我縮放我的PDF以適應我的ScrollPane的寬度。由於這個pdf高度不適合ScrollPanes高度。
我已經設法縮放,通過改變我的scaleFactor使用鼠標滾輪時。不幸的是我無法放大到一個特定的點。
我想我必須根據鼠標座標更改ScrollPanes值,但我找不到正確的計算。有人能幫幫我嗎?如何將pdf放大到javafx 2中的鼠標位置
比如我試圖
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可以以類似的方式縮放鼠標位置。
任何想法我可以如何計算這些值?
是否有必要使用樞軸點?因爲我沒有真正瞭解setPivot()中發生了什麼,你能嘗試向我解釋嗎? – Zydar
是的,這是一種必要的方法。它與'setTranslateX(getTranslateX() - x);'setTranslateY(getTranslateY() - y);''setScale(scale);'實際上是相同的,'除了它使翻譯動畫以使它們看起來更平滑。 – RonSiven
我回答你的問題了嗎?你還有麻煩嗎?我能以任何方式幫助嗎? – RonSiven