В настоящее время у меня есть кнопка со следующим CSS:
Button {
-fx-text-fill: -fx-color-text;
-fx-font: 15pt "Raleway SemiBold";
-fx-background-color: -fx-color-theme;
-fx-background-insets: 0, 0, 0, 0, 0, 1, 2;
-fx-background-radius: 0;
-fx-padding: 4px 20px;
/* -fx-effect: innershadow(two-pass-box, white, 2, 0.2, 0, 0); */
-fx-border-insets: 0;
-fx-border-color: black;
}
И это выглядит так:
И я пытаюсь добавить внутреннюю тень к кнопке. Я хочу, чтобы граница отображалась на за пределами этой кнопки, что должно привести к примерно так:
Я сделал что в свинге. Однако, когда я пытаюсь применить свою внутреннюю тень, она накладывается на aws поверх моей границы, как показано:
Я пробовал установив границу вставки в -1 (потому что для эффекта нет свойства вставки), но это просто переместило эффект вместе с ним:
Мой вопрос: что я могу сделать, чтобы убедиться, что я могу видеть свою границу вокруг, но сохранить свой эффект изнутри?
РЕДАКТИРОВАТЬ: Я почти уверен, что это ошибка в OpenJFX и Я отправил отчет об ошибке. Вот небольшой код, который вы можете использовать для воспроизведения проблемы:
public class App extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Region example = new Region();
example.setMaxWidth(100);
example.setMaxHeight(100);
example.setEffect(new InnerShadow(BlurType.GAUSSIAN, Color.RED, 10, 0.04, 0, 0));
example.setStyle("-fx-background-color: white; -fx-border-color: BLUE; -fx-border-width: 5px;");
StackPane container = new StackPane();
container.setStyle("-fx-background-color: black;");
container.setAlignment(Pos.CENTER);
container.getChildren().add(example);
Scene scene = new Scene(container, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
}