问题描述
我有带有 ScrollPane 的 fxml,在他里面有一个 Pane。 当我放大或缩小窗格时,ScrollPane 的滚动条没有变化,我无法向左/向右/向上/向下移动以查看窗格的其余部分。
缩放时滚动条如何改变?
- Mazedisplayer 是我创建的控制器,它扩展到 Canvas。
fxml:
<AnchorPane fx:id="aPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onMouseClicked="#mouseClicked" onMouseDragged="#MouseDrag" prefheight="600.0" prefWidth="600.0" stylesheets="@MainStyle.css" xmlns="http://javafx.com/javafx/8.0.191" xmlns:fx="http://javafx.com/fxml/1" fx:controller="View.MyViewController">
<ScrollPane fx:id="scrollPane" layoutY="26.0" pannable="true" prefheight="574.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="26.0" borderpane.alignment="CENTER">
<Pane fx:id="pane" pickOnBounds="false" prefheight="56.0" prefWidth="585.0">
<children>
<Mazedisplayer fx:id="mazedisplayer" height="56.0" imageFileNameWall="./resources/images/forest.jpg" onKeypressed="#keypressed" width="585.0" />
</children>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
</Pane>
</ScrollPane>
</AnchorPane>
控制器:
public class MyViewController extends AView implements Initializable {
public Mazedisplayer mazedisplayer;
public Pane pane;
public AnchorPane aPane;
public void initialize(URL location,ResourceBundle resources) {
try {
pane.setonScroll(new EventHandler<ScrollEvent>() {
@Override
public void handle(ScrollEvent event) {
double zoomFactor = 1.05;
double deltaY = event.getDeltaY();
if (deltaY < 0){
zoomFactor = 0.95;
}
pane.setScaleX(pane.getScaleX() * zoomFactor);
pane.setScaleY(pane.getScaleY() * zoomFactor);
event.consume();
}
});
} catch (Exception e) {
e.printstacktrace();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)