与向上滚动和向下滚动相关的事件是什么?我想创建两个按钮作为顶部和向下,而不是使用向上和向下滚动来上下移动JFXpanel。我应该将哪些事件与这些按钮联系起来?
答案 0 :(得分:0)
您希望使用ScrollPane
元素和vvalue属性,默认情况下double
属于0.0
和1.0
之间的值,代表状态分别滚动到顶部和底部。
所以,滚动到底部:
scrollpane.setVvalue(1);
滚动到顶部:
scrollpane.setVvalue(0);
您可以使用ScrollPane.setVmax()
和ScrollPane.setVmin()
为vmin(默认为0.0)和vmax设置其他值(默认为1.0)。
这是一个动画滚动动画的方便功能:
public void scrollVAnimate(ScrollPane scrollPane, double duration, double toVal)
{
TimelineBuilder.create()
.keyFrames(
new KeyFrame(
Duration.millis(duration),
new KeyValue(scrollPane.vvalueProperty(), toVal)
)).build()
.play();
}
用法:
// scroll to the bottom, animated
this.scrollVAnimate(scrollpane, 300, 1);
您可以使用FXML或Java代码将这些操作分配给按钮。在这两种情况下,我们都假设scrollpane
是控制器中的一个字段。
在控制器中创建一个方法:
public void onBtnDownPressed(MouseEvent event)
{
this.scrollpane.setVvalue(1);
}
将其添加到控制器的.fxml:
按钮中<Button text="Scroll to bottom" onAction="#onBtnDownPressed"></Button>
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event)
{
scrollpane.setVvalue(1);
}
});