如何在javaFX中可见的scrollBar上触发事件?

时间:2015-07-02 08:21:28

标签: javafx javafx-2 scrollbar scrollpane

滚动条可见或发生时我想要发射一个事件。直到现在我所做的是

private ScrollBar getVerticalScrollbar() 
    {
        ScrollBar result = null;
        for (Node n : scrollPaneID.lookupAll(".scroll-bar")) 
        {
            if (n instanceof ScrollBar) 
            {
                ScrollBar bar = (ScrollBar) n;
                if (bar.getOrientation().equals(Orientation.VERTICAL)) 
                {
                    result = bar;
                }
            }
        }       
        return result;
    }  
ScrollBar bar = getVerticalScrollbar();

通过这个我可以检查滚动条是否出现

if(bar.isVisible()) 
 {

 }

但只有在滚动条可见后才能工作。我的要求是出现滚动条时的火灾事件

1 个答案:

答案 0 :(得分:1)

您可以尝试将ChangeListener添加到可见属性。如下所示,但每次其可见性更改时都会触发,因此根据您的要求将您的逻辑放在更改的方法中

result.visibleProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(final ObservableValue<? extends Boolean> observableValue, final Boolean aBoolean, final Boolean aBoolean2) {
            System.out.println("Scrol Pane visible");

        }
    });