gpt4 book ai didi

java - 在 JavaFX 网格中插入行时如何纠正显示问题?

转载 作者:行者123 更新时间:2023-12-01 19:44:00 25 4
gpt4 key购买 nike

我想使用“插入”按钮在网格中插入一个新的 JavaFX bean。一切都很好,除了显示问题。插入后,“幽灵选择”会显示在网格下方,如该屏幕截图所示。在此示例中,根据请求添加并选择了第四个部分 bean。但在最后一个真实 bean 下的 10 行处出现了一个假选择,该行没有设置任何 bean。

Screenshot of a ghost selection

有人经历过这种行为吗?有什么线索可以摆脱这个幽灵选择吗?以下是插入按钮的代码:

@FXML
private Button insert;

...

insert.setOnAction(event -> {
JfxBean newBean = createBean();
tableView.getItems().add(newBean);
int index = tableView.getItems().indexOf(newBean);
tableView.getSelectionModel().clearSelection();
tableView.requestFocus();
tableView.scrollTo(index);
tableView.getSelectionModel().focus(index);
tableView.getSelectionModel().select(index);
};

最佳答案

根据javaFX-8 documentation , SelectionModel.java 不公开任何 focus() 方法。 FocusModel.java 则相反。因此 JVM 将无法编译您提供的代码。

以下是一个可能的解决方案:

insert.setOnAction(event -> {
JfxBean newBean = createBean();
tableView.getItems().add(newBean);
int index = tableView.getItems().indexOf(newBean);
tableView.getSelectionModel().clearSelection();
tableView.requestFocus();
tableView.scrollTo(index);
// below line is the amendment
tableView.getFocusModel().focus(index);
tableView.getSelectionModel().select(index);
};

关于java - 在 JavaFX 网格中插入行时如何纠正显示问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59146848/

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