2013-02-05 55 views
5

我有一個ListCell,我在其中顯示由ProgressIndicator下載的文件的進度信息。JavaFX 2.2 - 在ListCell中隱藏進度指示器的百分比

我的問題是刪除指標下方顯示的百分比信息。如前所述here,我包括在我的CSS規則如下:

.customProgressIndicator .percentage{ 
    visibility: hidden; 
    -fx-text-background-color: red; 
} 

-fx-text-background-color: red部分只是爲了確保我們的CSS應用到節點。

問題是,我打了一個電話,如indicator.setProgress(progress),百分比變爲可見(紅色),並且當我將鼠標懸停在指示器上時,它又變爲不可見。最後,在完成調用indicator.setProgress(1.0)後,「完成」文本在底部變爲可見,並且在懸停後再次變爲不可見。

它可能與ListView有關,因爲;在盤旋並使其變得不可見之後,如果我從List中刪除一個項目,並在ListCell上導致updateItem,它將再次可見。

我已經嘗試瞭解決方法爲:

Text text = (Text)indicator.lookup(".percentage"); 
    if (text != null) 
    { 
     text.setText(""); 
    } 

text有時空,有時沒有。

回答

10

注:

1)我看你鏈接的帖子和OP隱含確認visibility: hidden;爲他/她的工作。但是我測試了相同的代碼,它不起作用。也許是由於版本差異。我不知道。

2)-fx-text-background-color不是CSS屬性。它是caspian.css中的預定義顏色。因此,改變它你隱式地改變百分比標籤的顏色,定義爲

.progress-indicator .percentage { 
    -fx-font-size: 0.916667em; /* 11pt - 1 less than the default font */ 
    -fx-fill: -fx-text-background-color; 
} 

of caspian.css。 (注意-fx-text-background-color以上)

3)最後,你想要的效果可以通過

.customProgressIndicator .percentage { 
    -fx-fill: null; 
} 

附:完成我沒有在ListView中測試一個進度指示器。

+0

非常感謝!你是一個拯救生命的人! – Ramazan