2013-02-05 2 views
5

ProgressIndicatorでダウンロードしたファイルの進捗情報を表示するListCellがあります。JavaFX 2.2 - ListCell内のprogressIndicatorの割合を隠す

私の問題は、インジケータの下に表示されているパーセンテージ情報を削除することです。 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からアイテムを削除し、updateItemListCellになると、再び表示されます。

私はと回避策を試してみました:

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

しかしtextは時々、時々 nullではありません。

答えて

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; 
} 

caspian.css (-fx-text-background-color上記に注意してください)

3)最後に、あなたが望む効果が

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

P.S.を介して行うことができます私はlistviewの中に進捗インジケータをテストしていません。

+0

ありがとうございます!あなたは命の恩人です! – Ramazan

関連する問題