gpt4 book ai didi

colors - 选中时如何更改 JavaFX TableCell 颜色?

转载 作者:行者123 更新时间:2023-12-01 15:07:05 26 4
gpt4 key购买 nike

好吧,我为我的 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;
}

关于colors - 选中时如何更改 JavaFX TableCell 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com