[英]How do i change the JavaFX TableCell color when it is selected?
好吧,我為TableView創建了一個自定義TableCell。 此自定義TableCell包含一個鏈接,並在單擊時打開瀏覽器。 一切都工作正常,我想要做的是在選擇時更改此TableCell的文本顏色......這就是我想要做的:
callback = new Callback<TableColumn, TableCell>(){
@Override
public TableCell call(TableColumn param) {
return new TableCell<Test, String>(){
EventHandler handler = new EventHandler<MouseEvent>() {
final AM_RSS_FX RSS = AM_RSS_FX.this;
@Override
public void handle(MouseEvent param) {
try {
java.awt.Desktop.getDesktop().browse(new URI(RSS.link));
} catch (IOException | URISyntaxException ex) {
Logger.getLogger(AM_RSS_FX.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
@Override
public void updateItem(String item, boolean empty){
super.updateItem(item, empty);
if(!isEmpty()){
final AM_RSS_FX RSS = AM_RSS_FX.this;
this.setTextFill(Color.BLUE);
setText(item);
RSS.link = this.getText();
this.addEventHandler(MouseEvent.MOUSE_CLICKED, handler);
}
}
@Override
public void updateSelected(boolean arg0){
super.updateSelected(arg0);
if(isSelected()){
this.setTextFill(Color.AQUA);
}
}
};
}
};
我不知道我需要哪種方法覆蓋= /我試圖覆蓋updateSelected,但沒有工作= /
有人能幫我嗎?
1-您正在TableCell
實例上添加一個鼠標事件處理程序,當您單擊該事件時該事件將被觸發。 但是表單元仍未被選中。 而是觸發表行單元格選擇。 要啟用單元格選擇,請執
table.getSelectionModel().setCellSelectionEnabled(true);
2-無需覆蓋updateSelected()
來管理樣式,而是使用來自caspian.css的CSS選擇器:
.table-cell:selected {
-fx-background-color: lightgreen;
-fx-text-fill: green;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.