我正在使用我的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更改它的索引(如果我不想要它)。
我是新来的,如果有什么我没有注意到的,请告诉我,非常感谢!