簡體   English   中英

如何選擇JavaFX TableCell顏色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM