与向上滚动和向下滚动相关的事件是什么?我想创建两个按钮作为顶部和向下,而不是使用向上和向下滚动来向上和向下移动 JFXpanel。我应该将哪些事件与这些按钮相关联?
问问题
322 次
1 回答
0
您想使用ScrollPane
element 和vvalue属性,该属性double
默认为0.0
和之间的值1.0
,分别表示滚动到顶部和底部的状态。
所以,滚动到底部:
scrollpane.setVvalue(1);
并滚动到顶部:
scrollpane.setVvalue(0);
您可以使用ScrollPane.setVmax()
andScrollPane.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
是您的控制器中的一个字段。
1. 使用 FXML
在控制器中创建一个方法:
public void onBtnDownPressed(MouseEvent event)
{
this.scrollpane.setVvalue(1);
}
将其添加到控制器的 .fxml 中的按钮中:
<Button text="Scroll to bottom" onAction="#onBtnDownPressed"></Button>
2.在Java中使用setOnAction:
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event)
{
scrollpane.setVvalue(1);
}
});
于 2013-03-26T16:46:19.683 回答