如何在 JavaFX 中重置 ComboBox 滚动位置?

我创建了一个带有一个长列表的组合框和一个按钮来反转这个列表的字母顺序。

问题是,如果我向下滚动到列表的某个点,然后单击按钮来反转列表顺序,列表会正确反转并显示,但是组合框不会从顶部开始,但它从上一个滚动位置开始。

例如,如果我的列表是“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());
        }       
    }
});
zqsundy 回答:如何在 JavaFX 中重置 ComboBox 滚动位置?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/16007.html

大家都在问