Я читал этот вопрос: Action Buttons css style in JavaFX ControlFX dialog, чтобы узнать, можно ли изменить диалоги предупреждения JavaFX с точки зрения стиля.Стилирование диалога из проекта JavaFX Openjfx Dialogs
Ответ был довольно хорошим, но мне было интересно, можно ли просто форматировать определенные слова в диалоговом окне?
Например, я хочу, чтобы одно слово было подчеркнуто, я не могу понять, как это сделать, потому что есть только один .content.label
, а класс JavaFX Text
не работает должным образом с диалоговыми окнами (если я не неправильно).
Ниже приведено фрагмент кода, как изменилось диалоговое окно всего Alert
.
@Override
public void start(Stage primaryStage) {
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Confirmation Dialog");
alert.setHeaderText("This is a Custom Confirmation Dialog");
alert.setContentText("We override the style classes of dialog.css");
Button button = new Button("Click to display an alert");
button.setOnAction(e->{
Optional<ButtonType> result = alert.showAndWait();
result.ifPresent(System.out::println);
});
Scene scene = new Scene(new StackPane(button), 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
DialogPane dialogPane = alert.getDialogPane();
dialogPane.setStyle("-fx-background-color: greenyellow;");
dialogPane.getStyleClass().remove("alert");
GridPane grid = (GridPane)dialogPane.lookup(".header-panel");
grid.setStyle("-fx-background-color: cadetblue; "
+ "-fx-font-style: italic;");
StackPane stackPane = new StackPane(new ImageView(
new Image(getClass().getResourceAsStream("lock24.png"))));
stackPane.setPrefSize(24, 24);
stackPane.setAlignment(Pos.CENTER);
dialogPane.setGraphic(stackPane);
dialogPane.lookup(".content.label").setStyle("-fx-font-size: 16px; "
+ "-fx-font-weight: bold; -fx-fill: blue;");
ButtonBar buttonBar = (ButtonBar)alert.getDialogPane().lookup(".button-bar");
buttonBar.setStyle("-fx-font-size: 24px;"
+ "-fx-background-color: indianred;");
buttonBar.getButtons().forEach(b->b.setStyle("-fx-font-family: \"Andalus\";"));
}
Это сработало! awesome :) спасибо, приятель! –
Спасибо, тогда отметьте ответ как действительный, так что другие могут найти его полезным. –