2013-02-05 8 views
5

Ho un ListCell in cui visualizzo le informazioni sull'avanzamento di un download di file da ProgressIndicator.JavaFX 2.2 - Nascondere la percentuale di progressIndicator all'interno di ListCell

Il mio problema è con la rimozione delle informazioni di percentuale visualizzate sotto l'indicatore. Come detto here, ho incluso una regola nel mio css come segue:

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

La parte -fx-text-background-color: red è solo per essere sicuri che il nostro CSS viene applicato al nodo.

Il problema è che effettuo una chiamata come indicator.setProgress(progress), la percentuale diventa visibile (in rosso) e quando si passa il cursore sopra l'indicatore, diventa di nuovo invisibile. Di nuovo alla fine, il testo "Fatto" diventa visibile in fondo alla chiamata indicator.setProgress(1.0), e di nuovo diventa invisibile dopo un passaggio del mouse.

Potrebbe essere correlato a ListView perché; dopo averlo sospeso e averlo reso invisibile, se rimuovo un articolo dallo List e provo uno updateItem su ListCell, diventa nuovamente visibile.

ho cercato una soluzione come:

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

Ma text è volte nulla, a volte no.

risposta

10

Note:

1) Ho letto il post si è collegato e l'OP conferma implicitamente la visibility: hidden; è lavorato per lui/lei. Ma ho provato lo stesso codice e non funziona. Forse a causa delle differenze di versione. Non lo so.

2) -fx-text-background-color non è una proprietà CSS. È un colore predefinito in un caspian.css. Quindi cambiando si sta implicitamente cambiando il colore dell'etichetta percentuale, definito come predefinito in

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

di caspian.css. (Si noti la -fx-text-background-color sopra)

3) Infine, l'effetto desiderato può essere fatto attraverso

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

P.S. Non ho testato un indicatore di avanzamento all'interno di un listview.

+0

Grazie mille! Sei un risparmiatore di vita! – Ramazan

Problemi correlati