JavaFX:如何平移包含按钮子项的滚动窗格?

JavaFX:如何平移包含按钮子项的滚动窗格?,javafx,touch,mouseevent,javafx-8,Javafx,Touch,Mouseevent,Javafx 8,在JavaFX中,我有一个滚动窗格,其中包含一个TilePane,其中包含各种按钮s 此应用程序将在触摸屏上运行,因此用户将通过在滚动窗格中拖动手指来滚动,但如果手指开始在子按钮上拖动,则滚动窗格不会滚动。由于touch UI目前的工作方式,这对于用户来说是意外的行为 我希望按钮响应单击,但我希望拖动事件被发送到底层滚动窗格(如果它使用拖动事件平移) 我已经将ScrollPane的setPannable()属性设置为true,并尝试在按钮上设置各种setOnDrag*()方法的处理程序,然后触发

在JavaFX中,我有一个
滚动窗格
,其中包含一个
TilePane
,其中包含各种
按钮
s

此应用程序将在触摸屏上运行,因此用户将通过在滚动窗格中拖动手指来滚动,但如果手指开始在子按钮上拖动,则滚动窗格不会滚动。由于touch UI目前的工作方式,这对于用户来说是意外的行为

我希望按钮响应单击,但我希望拖动事件被发送到底层滚动窗格(如果它使用拖动事件平移)

我已经将
ScrollPane
setPannable()
属性设置为true,并尝试在
按钮上设置各种
setOnDrag*()
方法的处理程序,然后触发
ScrollPane
fireEvent()
方法,但没有发生任何事情

例如:

    button.setOnDragDone(new EventHandler<DragEvent>() {
        @Override
        public void handle(DragEvent event) {
            scrollPane.fireEvent(event);
        }
    });
button.setOnDragDone(新的EventHandler(){
@凌驾
公共无效句柄(DrageEvent事件){
滚动窗格。fireEvent(事件);
}
});

我应该怎么做呢?

试试这个,
滚动窗格上使用
触摸事件
,例如

ScrollPane.addEventHandler(TouchEvent.ANY, new EventHandler<TouchEvent>() {
        @Override
        public void handle(TouchEvent t) { 
            t.consume();
        }
    });     
ScrollPane.addEventHandler(TouchEvent.ANY,new EventHandler()){
@凌驾
公共无效句柄(TouchEvent t){
t、 消费();
}
});