JavaFX:从ProgressIndicator中删除百分比
我一直试图删除ProgressIndicator下面的百分比文本,但没有成功。我发现有几处提到这一点,并尝试了公认的答案,但它不起作用 使用Java8更新121JavaFX:从ProgressIndicator中删除百分比,java,css,javafx,javafx-8,Java,Css,Javafx,Javafx 8,我一直试图删除ProgressIndicator下面的百分比文本,但没有成功。我发现有几处提到这一点,并尝试了公认的答案,但它不起作用 使用Java8更新121 package com.company.mytest; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.ProgressInd
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;
}
将
-fx fill
属性设置为null
似乎可以解决问题:
.progress-indicator .percentage {
-fx-fill:null;
}
更新: 仅设置此属性将隐藏百分比文本,但仍会占用空间。 一种可能的解决方法是设置
ProgressIndicator
的-fx padding
属性:
.progress-indicator .percentage {
-fx-fill:null;
}
.progress-indicator {
-fx-padding: 0 0 -16 0;
}
唯一的问题是硬编码的值:如果.progress indicator.percentage
的CSS发生了更改(例如,字体更大),则还必须对其进行调整
或者,在这个答案中有一个编程解决方案:是的,但它仍然占用空间。即使将字体大小设置得很小,百分比也会占用更多的空间。是的,你是对的。请检查更新后的答案。设置填充就可以了。但是,为底部填充设置硬编码负值并不理想。如果在性能上没有任何额外开销,那么使用programatic解决方案可能是更好的选择。