1

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

4

1 回答 1

0

您想使用ScrollPaneelement 和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 回答