我想要一个透明的进度指示器,它是不确定的。
这是代码,它显示了灰色背景状态/场景。我想要完全透明的。
我尝试了以下代码,但它显示的背景阶段是不透明的。
package application;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Main extends Application {
@Override
public void start(Stage stage) {
/*
*
* my css file content:
*
* .progress-indicator .indicator { -fx-background-color: transparent;
* -fx-background-insets: 0; -fx-background-radius: 0;
*
* } .progress-indicator { -fx-progress-color: green ; }
*
*
*
*/
Stage initStage = new Stage();
initStage.initStyle(StageStyle.TRANSPARENT);
ProgressIndicator loadProgress = new ProgressIndicator();
loadProgress.setSkin(null);
loadProgress.setPrefWidth(50);
VBox box = new VBox();
box.getChildren().add(loadProgress);
final Scene scene = new Scene(box, 150, 150);
scene.setFill(Color.TRANSPARENT);
initStage.setScene(scene);
scene.getStylesheets().add("application.css");
initStage.show();
}
public static void main(String[] args) {
launch(args);
}
}

发布于 2015-12-02 09:17:02
对于modena.css (Java8中默认的JavaFX外观定义),为所有控件引入了略带阴影的背景(如果加载了控件,还会引入窗格)。
您可以通过指定默认背景为透明来删除此选项。这可以通过将以下行添加到应用程序的CSS文件中来完成:
.root { -fx-background-color: transparent; }这是对代码中已有的用于初始化舞台样式和场景背景填充的其它设置的补充。
stage.initStyle(StageStyle.TRANSPARENT);
scene.setFill(Color.TRANSPARENT);注意:在问题的示例代码中,创建了一个额外的阶段(initStage),而不是使用传入的stage作为start方法。传入的stage可以由您的代码直接初始化、利用和显示,而不是创建额外的initStage。
发布于 2017-03-25 00:57:19
stage.initStyle(StageStyle.TRANSPARENT);这是为了隐藏顶栏(最小化、向下恢复和关闭)
scene.setFill(Color.TRANSPARENT);这是框架颜色(您可以将透明替换为任何颜色绿色、黄色、红色、蓝色……)但对于我来说,如果你能理解我,我想要玻璃视图,并且有不同的颜色,所以解决方案是
primaryStage.setOpacity(0.2);数字0.2在0和1之间。0是隐藏的,1是标准形式,但在数字之间是透明的,所以选择你的数字并运行你的程序,看看这是不是你想要的,这是全屏代码。
primaryStage.setFullScreen(true);并在css文件中执行此操作
.root { -fx-background-color:rgba(0,0,0,1); }你可以在rgba(0,0,0,1)中通过更改数字改变颜色
发布于 2019-08-13 21:07:53
这对我很有效。
Parent root = FXMLLoader.load(getClass().getResource("login.fxml"));
Scene scene = new Scene(root);
scene.setFill(Color.TRANSPARENT);
stage.setScene(scene);
stage.initStyle(StageStyle.TRANSPARENT);
stage.show();U主要需要两样东西:
scene.setFill(Color.TRANSPARENT);
stage.initStyle(StageStyle.TRANSPARENT);https://stackoverflow.com/questions/34033119
复制相似问题