さて、TableView 用のカスタム TableCell を作成しました。このカスタム TableCell には Link が含まれており、クリックするとブラウザが開きます。すべてが正常に機能しています。私がしたいのは、この 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 をオーバーライドしようとしましたが、機能しませんでした =/
誰かが私を助けることができますか?