这与this几乎相同,但略有不同。我也从Java 8u45开始看到ProgressIndicator
控件周围的边框,但是当我选择“用户代理”时,我看到它们只有 。样式表到里海。它看起来很糟糕,但我对Caspian样式表非常投入,并且现在不愿意改变它。这是一些演示此问题的代码。显然,您必须取消注释才能看到问题。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.control.ProgressIndicator;
import javafx.stage.Stage;
import javafx.geometry.Insets;
public class ProgressIndicatorWithBorder extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// this.setUserAgentStylesheet(Application.STYLESHEET_CASPIAN);
ProgressIndicator pi = new ProgressIndicator();
BorderPane borderPane = new BorderPane();
borderPane.setCenter(pi);
borderPane.setMargin(pi, new Insets(12));
Scene scene = new Scene(borderPane, 640, 480);
primaryStage.setScene(scene);
primaryStage.show();
}
}
答案 0 :(得分:3)
正如提问者未提及的那样,ProgressIndicator可以通过两种方式使用:
问题仅与 inderminate状态有关,因为微调器的ProgressIndicator样式似乎与它的微调器的 Datepicker 样式冲突。所以JavaFX开发人员选择了Bugfix in Java 8u40。这是对modena.css完成的,因为它是JavaFX的默认CSS。
但在你的情况下你想使用旧样式caspian.css。因此,您必须以同样的方式执行此操作,因为他们已经完成了here。
Kevin Rushforth(JavaFX之一)已经制作了两个截图:
制作自己的样式表文件。我打电话给我的pibug.css。将它设置在ProgressIndicator上作为样式表。这不会覆盖已在caspian.css中设置的其他默认值。
.progress-indicator:indeterminate > .spinner {
-fx-background-color: transparent;
-fx-background-insets: 0;
-fx-background-radius: 0;
}
但这不是全部,如果您希望 Datepicker 与caspian.css配合良好,则需要在Datepicker上设置以下样式:
.date-picker-popup > * > .spinner {
-fx-spacing: 0.25em; /* 3 */
-fx-alignment: CENTER;
-fx-fill-height: false;
-fx-background-color: transparent; /* this line was added */
}
答案 1 :(得分:1)
我们必须从modena.css
.progress-indicator:indeterminate > .spinner {
/** Applying to undo styling from .spinner, reported in RT-37965 */
-fx-background-color: transparent;
-fx-background-insets: 0;
-fx-background-radius: 0;
}
不需要修改。
(注意:NwDX的答案很有用,因为它让我指出了正确的方向,所以我试着将这个事实编辑成他的答案。但我的编辑被拒绝,因为它偏离了原始答案的意图。 )