jav*_*fan 10 javafx stage transparent scene
我希望有透明的progressindicator,这是无限期的.
这是代码,它显示灰色背景状态/场景.我希望完全透明.
我尝试了下面的代码,但它显示了不透明的后台阶段.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
jew*_*sea 22
对于modena.css
(Java 8中的默认JavaFX外观定义),为所有控件(以及加载控件时的窗格)引入了轻微的阴影背景.
您可以通过指定默认背景是透明的来删除它.这可以通过将以下行添加到应用程序的CSS文件中来完成:
.root { -fx-background-color: transparent; }
Run Code Online (Sandbox Code Playgroud)
这是您在代码中已有的其他设置的补充,用于初始化场景的样式和场景的背景填充.
stage.initStyle(StageStyle.TRANSPARENT);
scene.setFill(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)
注意:在问题的示例代码中,创建了一个附加阶段(initStage),而不是使用start方法的传入阶段.传入的阶段可以由代码直接初始化,使用和显示,而不是创建额外的initStage.
stage.initStyle(StageStyle.TRANSPARENT);
这是用于隐藏顶部栏(最小化,还原并关闭)
scene.setFill(Color.TRANSPARENT);
这是针对框架颜色的(您可以将TRANSPARENT替换为任何颜色的绿色,黄色,红色,蓝色...),
但是对我来说,如果您能理解我的话,我希望使用玻璃视图,
并使用不同的颜色,
因此解决方案是
primaryStage.setOpacity(0.2);
Run Code Online (Sandbox Code Playgroud)
数字0.2在0和1之间,
0是隐藏的,而1是正常形式,但是在数字之间是透明的,
所以选择您的数字并运行程序,看看是否正是您想要的
代码。
primaryStage.setFullScreen(true);<br>
Run Code Online (Sandbox Code Playgroud)
并在css文件中执行此操作
.root { -fx-background-color:rgba(0,0,0,1); }<br>
Run Code Online (Sandbox Code Playgroud)
您可以通过更改rgba(0,0,0,1)中的数字来更改颜色
归档时间: |
|
查看次数: |
15045 次 |
最近记录: |