![](/img/trans.png)
[英]JavaFX - How to change TableView color of selected unfocused row?
[英]In JavaFX TableView, how to change color of a checkbox row based on some button click event
我有JavaFX TableView,我在其中將一列設置為CheckBoxTableCell,並且我想基於一些按鈕單擊事件來更改該單元格的背景顏色,以便在我的代碼的另一個UI中顯示的顏色也是背景該單元格的顏色。
我已經實現了CheckBoxTableCell列,如下所示-
dtlsTableViewDisplayChannelColumn.setCellValueFactory(cellData -> cellData.getValue().isChecked());
dtlsTableViewDisplayChannelColumn
.setCellFactory(CheckBoxTableCell.forTableColumn(new Callback<Integer, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(Integer param) {
logger.info("AID " + observableDataList.get(param).getAid() + " changed value to "
+ observableDataList.get(param).isChecked());
if (observableDataList.get(param).isChecked().get()) {
aidSet.add(observableDataList.get(param).getAid());
} else {
aidSet.remove(observableDataList.get(param).getAid());
}
return observableDataList.get(param).isChecked();
}
}));
它在UI中顯示如下- 帶Visualize按鈕的UI中的CheckBox
因此,當單擊“可視化”按鈕時,選中的CheckBox單元格的背景色應更改為提供的顏色值。
請在下面的圖像中找到預期的輸出- 單擊“ Visualize”按鈕后,UI中的CheckBox的Checked CheckBox單元格的背景色發生了變化
我想這就是您要尋找的...我要假裝我理解您的代碼並向您顯示編輯內容:
dtlsTableViewDisplayChannelColumn.setCellValueFactory(cellData -> cellData.getValue().isChecked());
dtlsTableViewDisplayChannelColumn
.setCellFactory(CheckBoxTableCell.forTableColumn(new Callback<Integer, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(Integer param) {
logger.info("AID " + observableDataList.get(param).getAid() + " changed value to "
+ observableDataList.get(param).isChecked());
if (observableDataList.get(param).isChecked().get()) {
aidSet.add(observableDataList.get(param).getAid());
observableDataList.get(param).setStyle("-fx-background-color: red;"); //<--- This changes the color of the specific checkbox
//Note: I assume "param" calls the specific checkbox in the checkbox list "observableDataList"
} else {
aidSet.remove(observableDataList.get(param).getAid());
}
return observableDataList.get(param).isChecked();
}
}));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.