J'ai un ChoiceDialog dans mon application JavaFX, et pour la vie de moi ne peut pas comprendre quels éléments CSS sont nécessaires pour changer l'aspect et la convivialité de celui-ci. Mes autres fenêtres de dialogue semblent être affectées par mon fichier CSS externe, donc je suppose que c'est un élément que je ne connais pas.JavaFX ChoiceDialog CSS
Aussi, ce serait de remplacer le modena CSS.
J'ai essayé:
.dialog-pane {
-fx-background-color: black;
}
.dialog-pane .label {
-fx-text-fill: white;
}
.dialog-pane:header .header-panel {
-fx-background-color: black;
}
.dialog-pane:header .header-panel .label {
-fx-font-style: italic;
-fx-font-size: 2em;
}
J'ai essayé aussi:
.choice-dialog .dialog-pane {
-fx-background-color: black;
}
.choice-dialog .dialog-pane .label {
-fx-text-fill: white;
}
.choice-dialog .dialog-pane:header .header-panel {
-fx-background-color: black;
}
.choice-dialog .dialog-pane:header .header-panel .label {
-fx-font-style: italic;
-fx-font-size: 2em;
}
Outre quelques autres variantes de ces 2 (.choice-dialogue &-volet .dialog) Une autre chose J'ai essayé (après avoir regardé le fichier modena.css) était de changer l'icône qui s'affiche dans le ChoiceDialog en procédant comme suit:
de
.choice-dialog.dialog-pane {
-fx-graphic: url("dialog-confirm.png");
}
à
.choice-dialog.dialog-pane {
-fx-graphic: url("dialog-warning.png");
}
bien que cela n'a donné aucun résultat non plus.
MISE À JOUR
Je mis à jour mon fichier CSS personnalisé, enlevé tout et refait le css mentionné ci-dessus. Le premier bloc de CSS change seulement DialogPane, pas un ChoiceDialog. La deuxième et la troisième n'ont rien fait du tout.
Voici le code que j'utilisé pour créer le ChoiceDialog
ChoiceDialog<String> dialog = new ChoiceDialog<>("district", choices);
dialog.setTitle("Object Selection");
dialog.setHeaderText("Which object should the file inherit from?");
dialog.setContentText("Default Object:");
Stage dialogStage = (Stage) dialog.getDialogPane().getScene().getWindow();
dialogStage.getIcons().add(icon);
dialogStage.initOwner(stage);
Optional<String> response = dialog.showAndWait();
response.ifPresent(chosen ->
{
//It does something...
});
Dialog<ObservableList<DataFilter>> dialog = new Dialog<>();
dialog.getDialogPane().setPrefSize(620, 430);
dialog.setTitle("Field Filter");
dialog.getDialogPane().getButtonTypes().addAll(save_bt, cancel_bt);
dialog.initOwner(stage);
dialog.setResultConverter((ButtonType b) ->
{
if (b == save_bt)
{
return FXCollections.observableArrayList(dataFilters);
}
return null;
});
Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
stage.getIcons().add(icon);
Pouvez-vous donner un peu plus de détails? Quel style essayez-vous d'appliquer, et qu'avez-vous réellement essayé pour l'appliquer? Poster un [MCVE]. –
Mise à jour pour montrer ce que j'ai essayé. –
Avez-vous essayé '.choice-dialog.dialog-pane' (comme dans l'extrait que vous avez posté de modena.css, sans l'espace), au lieu de' .choice-dialog .dialog-pane' (avec l'espace)? La fonction 'url (...)' va rechercher le fichier image par rapport au fichier CSS, donc à moins que vous n'en ayez un, cet extrait ne fonctionnera pas. Si ces corrections ne fonctionnent pas, je vous recommande de poster un [MCVE]. –