与JFXpanel的滚动条关联的事件

时间:2013-03-26 07:32:43

标签: java javafx

与向上滚动和向下滚动相关的事件是什么?我想创建两个按钮作为顶部和向下,而不是使用向上和向下滚动来上下移动JFXpanel。我应该将哪些事件与这些按钮联系起来?

1 个答案:

答案 0 :(得分:0)

您希望使用ScrollPane元素和vvalue属性,默认情况下double属于0.01.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是控制器中的一个字段。

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);
    }
});