gpt4 book ai didi

javafx - 延迟按键释放和 ListView 选择单元格

转载 作者:行者123 更新时间:2023-12-02 11:02:15 24 4
gpt4 key购买 nike

我在释放按键和 ListView 选择单元格之间存在类似的延迟问题。当释放向上/向下键时,firstListView 选择向下/向上单元格,在此第二个ListView 之后执行相同的操作,但不同时执行。我需要它们同步。这是一个 gif(0 专业人士):https://giphy.com/gifs/9zXCVgV5H6CEXdPrrL (不是超链接,因为它不是骗局或其他什么)。这是我的代码:

AtomicInteger selectedIndex = new AtomicInteger();
firstListView.setOnKeyReleased(event -> {
if (event.getCode() == KeyCode.UP || event.getCode() == KeyCode.DOWN) {
selectedIndex.set(firstListView.getSelectionModel().getSelectedIndex());
secondListView.getSelectionModel().select(selectedIndex.get());
}

});

谢谢!

最佳答案

您正在使用按键事件处理选择。但是,您不应为此依赖 ListView 的实现细节。改为监听 ListView 选择模型中的 selectedIndex 属性:

@Override
public void start(Stage primaryStage) throws IOException {
ListView<Integer> lv1 = new ListView<>();
ListView<String> lv2 = new ListView<>();
for (int i = 0; i < 26; i++) {
lv1.getItems().add(i);
lv2.getItems().add(Character.toString((char) ('a' + i)));
}

lv1.getSelectionModel().selectedIndexProperty().addListener((o, oldValue, newValue) -> {
int index = newValue.intValue();
if (index < 0) {
lv2.getSelectionModel().clearSelection();
} else {
lv2.getSelectionModel().select(index);
}
});

Scene scene = new Scene(new HBox(lv1, lv2));

primaryStage.setScene(scene);
primaryStage.show();
}

不过,使用 TableView 可能是更好的选择。

关于javafx - 延迟按键释放和 ListView 选择单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51244087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com