我想在javafx 2.0中创建一个自定义阶段.我希望我的舞台在屏幕上投下阴影,因为其他窗口掉落了......我尝试使用以下代码:
public class ChatWindow {
final private Stage stage = new Stage(StageStyle.UNDECORATED);
private Scene scene;
private Group rg;
private Text t = new Text();
private double initx = 0, inity = 0;
public ChatWindow() {
rg = new Group();
scene = new Scene(rg, 320, 240);
//scene.setFill(null);
scene.setFill(new Color(0, 0, 0, 0));
stage.setScene(scene);
stage.show();
setupStage();
}
private void setupStage() {
Rectangle r = new Rectangle(5, 5, stage.getWidth() - 10, stage.getHeight() - 10);
r.setFill(Color.STEELBLUE);
r.setEffect(new DropShadow());
rg.setOnMousePressed(new EventHandler<MouseEvent>() {
public void …Run Code Online (Sandbox Code Playgroud) 想要仅将阴影添加到网格窗格的边框而不是内部子元素
这是显示效果的屏幕图像.
我删除了主要阶段的默认边框:
stage.initStyle(StageStyle.UNDECORATED)
Run Code Online (Sandbox Code Playgroud)
这将删除窗口边框,这是我想要的,但现在我想在窗口下面有一个阴影.
顶级BorderPane对象dropshadow应用了效果,但阴影被截断:

您可以在右下方略微看到阴影,但只要主应用区域结束,阴影就会被切断.
我所看到的:
我想看的是:
我尝试添加阴影,css但效果仅在SceneBuilder 中可见。程序窗口显示为无阴影。
.rootBorder {
-fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.4), 10, 0.5, 0.0, 0.0);
}
Run Code Online (Sandbox Code Playgroud)
如何在舞台上添加阴影?谢谢。