Я пытаюсь добавить каплю тени в окно оповещения. Я устанавливаю его стиль прозрачным и initOwner для моей текущей стадии.Тень на кнопке работает, но не на поле предупреждения.Почему dropShadow в .alertBox не работает?Должен ли я поместить тень в другое место?Вот как я создаю предупреждение:
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.initOwner(stage);
alert.initStyle(StageStyle.TRANSPARENT);
DialogPane dialog = alert.getDialogPane();
dialog.setGraphic(null);
dialog.getStyleClass().add("alertBox");
Это мой css:
.alertBox{
-fx-background-color: #2A2E37;
-fx-border-color: #363b41;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,1.6) , 5, 0.0 , 0 , 2 );
}
.alertBox > *.button-bar > *.container{
-fx-background-color: transparent;
-fx-pref-height: 50
}
.alertBox:header *.header-panel{
-fx-background-color: transparent;
}
.alertBox:header *.header-panel *.label{
-fx-font-size: 14px;
-fx-font-weight: bold;
-fx-pref-height: 25;
-fx-text-fill: #363b41;
-fx-alignment: center;
-fx-background-color: transparent;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0) , 0, 0.0 , 0 , 0 );
}
.alertBox > *.label.content{
-fx-font-size: 12px;
-fx-text-fill: #bcbcbc;
-fx-alignment: center;
-fx-pref-height: 50;
-fx-padding: 0,0,10,0;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,1.6) , 5, 0.0 , 0 , 2 );
-fx-background-color: transparent;
}
.alertBox Button{
-fx-text-fill: #bcbcbc;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,1.6) , 5, 0.0 , 0 , 0);
-fx-background-color: #2A2E37;
}
Редактировать:
Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
Pane root = new FXMLLoader(LoggedFirstStyle.class.getResource("/FXML/logged-first.fxml")).load();
Scene scene = new Scene(root);
scene.getStylesheets().add(LoggedFirstStyle.class.getResource("/css/logged-first.css").toString());
scene.setFill(Color.TRANSPARENT);
stage = new Stage();
stage.initStyle(StageStyle.TRANSPARENT);
stage.setScene(scene);
stage.show();
stage.setWidth(primaryScreenBounds.getWidth());
stage.setHeight(primaryScreenBounds.getHeight());
stage.setX(primaryScreenBounds.getMinX());
stage.setY(primaryScreenBounds.getMinY());