gpt4 book ai didi

javafx - 在 tableView javafx 中进行多选

转载 作者:行者123 更新时间:2023-12-01 12:26:10 24 4
gpt4 key购买 nike

我想在我的 TableView 中多选行。问题是我的应用程序是多点触控应用程序,我没有键盘,所以没有 CTRL 键。

我有一个代码如下:

tableViewArticle.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

但我只想通过单击鼠标来选择很多行。例如,当我选择一行时,该行变为蓝色,如果我选择另一行后,我有两行变为蓝色。

最佳答案

如果单击发生在表格行上,您可以为处理选择的 TableView 使用自定义事件过滤器:

tableViewArticle.addEventFilter(MouseEvent.MOUSE_PRESSED, evt -> {
Node node = evt.getPickResult().getIntersectedNode();

// go up from the target node until a row is found or it's clear the
// target node wasn't a node.
while (node != null && node != tableViewArticle && !(node instanceof TableRow)) {
node = node.getParent();
}

// if is part of a row or the row,
// handle event instead of using standard handling
if (node instanceof TableRow) {
// prevent further handling
evt.consume();

TableRow row = (TableRow) node;
TableView tv = row.getTableView();

// focus the tableview
tv.requestFocus();

if (!row.isEmpty()) {
// handle selection for non-empty nodes
int index = row.getIndex();
if (row.isSelected()) {
tv.getSelectionModel().clearSelection(index);
} else {
tv.getSelectionModel().select(index);
}
}
}
});

如果你想以不同于鼠标事件的方式处理触摸事件,你也可以使用MouseEvent.isSynthesized检查事件是否为触摸事件。

关于javafx - 在 tableView javafx 中进行多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39365578/

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