2017-03-10 54 views
1

我一直在嘗試刪除ProgressIndicator下的百分比文本,但不成功。我已經發現了幾本提到,並試圖接受的答案,但它不工作JavaFX:從ProgressIndicator刪除百分比

使用Java 8更新121

package com.company.mytest; 

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.control.ProgressIndicator; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Stage; 

public class ProgressApp extends Application { 

    public static void main(String[] args) { 
     launch(args); 
    } 

    /* (non-Javadoc) 
    * @see javafx.application.Application#start(javafx.stage.Stage) 
    */ 
    @Override 
    public void start(Stage stage) throws Exception { 
     ProgressIndicator progress = new ProgressIndicator(); 
     progress.setProgress(0.5f); 

     StackPane root = new StackPane(); 
     root.getChildren().add(progress); 

     Scene scene = new Scene(root); 

     scene.getStylesheets() 
     .add(getClass().getResource("progress.css").toExternalForm()); 

     stage.setScene(scene); 
     stage.setWidth(300); 
     stage.setHeight(300); 
     stage.setTitle("JavaFX 8 app"); 
     stage.show(); 
    } 

} 

我知道CSS加載,因爲我能夠改變比例字體尺寸。這是progress.css文件的CSS內容。

.progress-indicator .percentage { 
    visibility: hidden; 
} 

回答

1

-fx-fill屬性設置爲null似乎解決問題:

.progress-indicator .percentage { 
    -fx-fill:null; 
} 

更新:

僅設置該屬性隱藏比例文本,但是仍然佔據空間。

可能的解決方法是設置-fx-padding屬性ProgressIndicator的:

.progress-indicator .percentage { 
    -fx-fill:null; 
} 

.progress-indicator { 
    -fx-padding: 0 0 -16 0; 
} 

唯一的問題是硬編碼的值:如果.progress-indicator .percentage CSS中改變(例如更大的字體大小),那麼這也有進行調整。


或者在這個答案程序上的解決方案:How can I avoid the display of percentage values, when using the ProgressIndicator of JavaFX UI Controls

+0

是的,但它仍然佔用空間。即使將字體大小設置得非常小,百分比也會佔用比使用的空間更多的空間。 – DJViking

+0

是的,你是對的。請檢查更新後的答案。 – DVarga

+0

設置填充有訣竅。但是,爲底部填充設置硬編碼的負值並不理想。使用編程式解決方案可能是更好的選擇,如果它沒有任何額外的性能開銷。 – DJViking