Я создаю пользовательский RowFactory
для моего TableView
для приема файлов перетаскивания.Я хочу обновить стиль определенного Row
при обнаружении приемлемого события DragOver
.
Использование :hover
, очевидно, не будет работать, потому что это будет применяться, даже если пользователь ничего не перетаскивает.
Конечная цель состоит в том, чтобы просто визуально прояснить, в какую строку пользователь собирается отбросить элементы.
Есть ли селектор, который я могу использовать в моей таблице стилей для обработки этого?Я не смог найти ничего в Справочном руководстве по JavaFX CSS .
В настоящее время я могу обойти это, определив свой собственный StyleClass и добавив его в метод setOnDragOver()
:
setOnDragOver(event -> {
// Determine if the dragged items are files
if (!this.isEmpty() && event.getDragboard().hasFiles()) {
event.acceptTransferModes(TransferMode.LINK);
this.getStyleClass().add("dragging");
}
});
Однако попытка удалить класс при выходе не работает:
setOnDragExited(event -> this.getStyleClass().remove("dragging"));
Редактировать: Я также должен уточнить, что у каждой строки могут быть другие стилиприменяется к ним (на основе нескольких факторов), и при перетаскивании нужно добавить стиль в строку, а не заменить все остальные)