有沒有機會在選定的行上對TableView行顏色進行編碼?我的意思是這樣的:例如我有TableView充滿電影,我想要一個特定的電影(行)在點擊時改變顏色 - 當它在商店時變成綠色 - 或 - 變紅 - 當它不在商店時。通過查詢數據庫來實現簡單的功能,我們會知道它是否在商店中,但是我也需要一些能夠改變所選行背景顏色的功能。有沒有什麼辦法可以讓代碼類似的東西?點擊行背景顏色JavaFX
0
A
回答
1
你可以做線沿線的東西:
TableView<Movie> table = ... ;
PseudoClass outOfStockPseudoClass = PseudoClass.getPseudoClass("out-of-stock");
table.setRowFactory(tv -> {
TableRow<Movie> row = new TableRow<>();
row.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> {
if (isNowSelected) {
boolean outOfStock = checkIfOutOfStock(row.getItem()) ;
row.pseudoClassStateChanged(outOfStockPseudoClass, outOfStock);
}
});
row.itemProperty().addListener((obs, oldMovie, newMovie) -> {
if (row.isSelected()) {
boolean outOfStock = checkIfOutOfStock(newMovie) ;
row.pseudoClassStateChanged(outOfStockPseudoClass, outOfStock);
}
});
return row ;
});
,然後在外部CSS文件就
.table-row-cell {
-fx-selection-bar: /* color for in-stock selected row */ ;
}
.table-row-cell:out-of-stock {
-fx-selection-bar: /* color for out-of-stock selected row */;
}
如果你可以檢查電影是否是庫存在初始化時來自數據庫的數據,可以簡化您的排廠:
table.setRowFactory(tv -> new TableRow<Movie>() {
@Override
protected void updateItem(Movie item, boolean empty) {
super.updateItem(item, empty);
pseudoClassStateChanged(outOfStockPseudoClass,
item!=null && item.isOutOfStock());
}
});
+0
嗯這可能工作,但顏色不chaning:/外部CSS文件是標準的application.css?我必須將它鏈接到應用程序才能工作嗎?我的意思是,我可以以某種方式沒有僞類,就像這裏:http://stackoverflow.com/questions/30889732/javafx-tableview-change-row-color-based-on-column-value和是的,在tableview初始化或刷新我不會讓查詢檢查,如果該電影是在股票或沒有? –
相關問題
- 1. 背景顏色上點擊
- 2. JavaFX舞臺背景顏色?
- 3. 點擊更改div背景顏色
- 4. 背景顏色行
- 5. WPF雙擊更改行背景顏色
- 6. 雙擊Datagrid行背景顏色變化
- 7. JavaFX:在TextFlow中設置背景顏色
- 8. Chart.js數據背景顏色覆蓋點背景顏色
- 9. 顏色背景
- 10. WPF ListView行背景顏色
- 11. DataGrid行背景顏色MVVM
- 12. 設置行背景顏色
- 13. Vala:TreeVIew + ListStore行背景顏色
- 14. 點擊更改javafx按鈕顏色?
- 15. 單擊淡出背景顏色
- 16. Android單擊後更改背景顏色
- 17. DBVisualizer背景顏色
- 18. UIView背景顏色
- 19. iframe背景顏色
- 20. ListBoxItem背景顏色
- 21. Bootstrap:Div背景顏色
- 22. NILauncherView背景顏色
- 23. Uipicker背景顏色
- 24. HTML背景顏色
- 25. 組背景顏色
- 26. FieldSet背景顏色
- 27. EditText背景顏色
- 28. Win32背景顏色
- 29. UIAlertAction背景顏色
- 30. TodayExtension背景顏色
https://docs.oracle.com/javase/8/javafx /api/javafx/scene/control/TableCell.html – Mordechai