更改之前的JavaFx ListView事件

时间:2015-12-24 10:00:31

标签: listview events javafx onchange

我正在使用我的JavaFX 8应用程序,想要添加一个弹出窗口并确认用户是否想要退出页面而不保存,当用户在列表视图中选择另一个项目时,该窗口应该跳转,这意味着将焦点转移到另一个列表视图项目。

首先,我使用一个更改侦听器来处理selectedIndexChange事件,就像下面的

一样
listView_a.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>(){
        @Override 
        public void changed(ObservableValue<? extends Number> ov, Number oldV, Number newV){                

            if(newV != null){
                int selectedIdx = newV.intValue();

                if (0 == selectedIdx) {                 
                    reloadForOverview();
                } else if (1 == selectedIdx) {
                    reloadForA();
                } else if (2 == selectedIdx) {
                    reloadForB();
                }
            }
        }
    });
}

我试图在&#34;更改&#34;之前找到一些事件处理程序。事件发生,并停止&#34;改变&#34;发生,指数变化等。尝试&#34; MouseClicked事件&#34;但最终以失败告终,现在我正在使用失效事件来实现这一点,但是徒劳无功,就像这样

listView_A.getFocusModel().focusedIndexProperty().addListener(new ChangeListener<Number>()
    {
        @Override
        public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue)
        {   
            if (oldValue != null && oldValue.intValue() >= 0)
            {
                if (resetFocus())
                {
                    listView_A.getFocusModel().focus(oldValue.intValue());
                }       
            }       
        }
    });

它仍然会改变&#34;改变&#34;而且我无法阻止它,请告诉我如何停止&#34;更改&#34;事件并阻止listView_A更改它的索引(如果我不想要它)。

我是新来的,如果有什么我没有注意到的,请告诉我,非常感谢!

0 个答案:

没有答案