我创建了一个带有一个长列表的组合框和一个按钮来反转这个列表的字母顺序。
问题是,如果我向下滚动到列表的某个点,然后单击按钮来反转列表顺序,列表会正确反转并显示,但是组合框不会从顶部开始,但它从上一个滚动位置开始。
例如,如果我的列表是“A、B、C、...、Z”并且我滚动我的组合直到第 i 个元素,比如说 M,当我颠倒顺序时,组合中显示的列表是 "Z,...,C,B,A",但它不是从 Z 开始的:它仍然位于第 i 个元素。
如何重置这个“滚动问题”?
这是我的代码:
@FXML
private ImageView ascOrder,descOrder;
@FXML
private ComboBox<String> expNameCombo;
ascOrder.addEventHandler(MouseEvent.MOUSE_CLICKED,new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
ascOrder.setVisible(false);
descOrder.setVisible(true);
//populate the combo in descending order
expNameCombo.getItems().clear();
for (Experiment exp : ClientHttps.getInstance().getExperiments().descendingSet()) {
expNameCombo.getItems().add(exp.getName());
}
}
});
descOrder.addEventHandler(MouseEvent.MOUSE_CLICKED,new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
descOrder.setVisible(false);
ascOrder.setVisible(true);
//populate the combo in ascending order
expNameCombo.getItems().clear();
for (Experiment exp : ClientHttps.getInstance().getExperiments()) {
expNameCombo.getItems().add(exp.getName());
}
}
});