0
A
回答
0
您可以替換TableColumnHeader
的事件處理程序。從這位聽衆可以使用TableView
的選擇模型選擇整個列。如果你想額外的列空單元格顯示爲選中,你可以添加一個風格類所選列:
private static final String selectedStyleClass = "selected";
@Override
public void start(Stage primaryStage) {
TableView<Item<String>> tableView = createTable();
// set selection mode to multi-cell-selection
tableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
tableView.getSelectionModel().setCellSelectionEnabled(true);
// make sure the table skin is created
Scene scene = new Scene(tableView);
tableView.applyCss();
tableView.layout();
// clear column selection on change of selected cells
tableView.getSelectionModel().getSelectedCells().addListener((Observable v) -> clearSelections(tableView));
tableView.lookupAll("TableColumnHeader").stream().forEach(h -> {
final TableColumnHeader header = (TableColumnHeader) h;
header.setOnMouseReleased(evt -> {
evt.consume();
// select the whole column
tableView.getSelectionModel().selectRange(0, header.getTableColumn(), tableView.getItems().size() - 1, header.getTableColumn());
// add style class for styling empty cells in selected column
List<String> style = header.getTableColumn().getStyleClass();
if (!style.contains(selectedStyleClass)) {
style.add(selectedStyleClass);
}
});
});
scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
}
private static void clearSelections(TableView<?> tableView) {
for (TableColumn column : tableView.getColumns()) {
column.getStyleClass().remove(selectedStyleClass);
}
}
的style.css
.table-view:focused .table-cell:empty.selected {
-fx-background: -fx-selection-bar;
-fx-table-cell-border-color: derive(-fx-selection-bar, 20%);
}
.table-view .table-cell:empty.selected {
-fx-background: -fx-selection-bar-non-focused;
-fx-table-cell-border-color: derive(-fx-selection-bar-non-focused, 20%);
-fx-background-color: -fx-table-cell-border-color, -fx-background;
-fx-background-insets: 0, 0 0 1 0;
}
+0
非常感謝 – zaki
相關問題
- 1. 的JavaFX,TableView中和所選擇的
- 2. TableView中的JavaFX設置選擇
- 3. JAVAFX從ListView選擇更新TableView
- 4. JavaFx TableView行丟失選擇高亮
- 5. JavaFX tableview啓用和禁用行選擇
- 6. 在JavaFX 2.0中從TableView中讀取多個選擇
- 7. 如何在JavaFX tableview中取消選擇行?
- 8. 從JavaFX 2.0中的TableView中讀取選擇
- 9. TableView中的中心複選框JavaFX
- 10. 集ComboBoxCell在TableView中的JavaFX
- 11. 修改在TableView中的JavaFX
- 12. JavaFX如何計算TableView中的選擇行
- 13. 更改tableview和文本字段中的選擇顏色javafx
- 14. 如何更改tableView中的顏色選擇行javafx
- 15. JavaFX中的Issue binding複選框TableView
- 16. JavaFX tableview中的複選框單元格
- 17. JavaFX的:從TableView中
- 18. IBAction在TableView中選擇行
- 19. 在tableview中選擇多行
- 20. 如何在JavaFx中的TableView中針對選擇的項目創建一個BooleanBinding
- 21. 了JavaFx:雙向綁定,選擇價值TableView中
- 22. 當從tableview javafx中選擇時得到字符串
- 23. JavaFX的ListView和CSS的TableView非焦點的選擇
- 24. 如何使用javafx只在鼠標中選擇tableview中的多個單元格?
- 25. 在JavaFx中滑動TableView
- 26. 在CSS中設置TableView(JavaFX)
- 27. 在javafx中填充tableview
- 28. 在javafx中progurad混淆tableview
- 29. JavaFX - 在tableview中移動列
- 30. 在JavaFX中使用MySQL TableView
你能你的表視圖對象和列對象,所以我可以看到數據類型。 –