Ombre portée dans une nudité Volet! JAVAFX
J'essaie de faire de mon Volet est un peu mieux, visuellement, donc, ce que je fais: set ma scène sans décor (OK) et (d'ESSAYER) d'ajouter un dropshadow effet (PAS OK).
J'ai Cherché UN peu (BEAUCOUP) des questions de ce genre sur Internet, trouvé des cas similaires (la création de nudité scène dans javafx 2.0 et Comment ajouter de l'ombre à la fenêtre en JavaFX?) mais aucun ne fonctionne pour moi.
Il Semble que l'ombre n'est tout SIMPLEMENT pas ensemble! Ne peut pas comprendre pourquoi.
Voir ce que j'ai:
public static int showConfirmDialog(Window father, String title, String body, String[] msgBtn)
{
System.out.println("La vai eu");
AnchorPane ap = createPaneWithButton(2, msgBtn,body);
ap.setEffect(initDropShadow());
Scene scene = new Scene(ap);
Stage stage = new Stage();
stage.setTitle(title);
scene.setFill(null);
stage.initStyle(StageStyle.TRANSPARENT);
stage.setScene(scene);
stage.initStyle(StageStyle.UNDECORATED);
stage.show();
return 1;
}
private static AnchorPane createPaneWithButton(int qtBtn, String[] msgsBtn, String body) {
AnchorPane ap = createPane();
HBox laneBtn = new HBox(30);
VBox vbox = new VBox(20);
BorderPane layout = new BorderPane();
Button btn;
for(int i = 0; i < qtBtn; i++ ){
btn = new Button();
btn.setText(msgsBtn[i]);
laneBtn.getChildren().add(btn);
}
vbox.getChildren().add(new Text(body));
vbox.getChildren().add(laneBtn);
layout.setCenter(vbox);
ap.getChildren().add(layout);
return ap;
}
private static AnchorPane createPane() {
AnchorPane ap = new AnchorPane();
ap.setLayoutX(250);
ap.setLayoutY(50);
return ap;
}
Merci les gars! Je suis impatient pour la réponse! (Même si je vais continuer à essayer ce que je peux).
PS:. Srry pour l'anglais, ce n'est pas ma langue principale. J'espère que vous pouvez comprendre.
- Nous montrer initDropShadow().
Vous devez vous connecter pour publier un commentaire.
Avant l'Exemple Fonctionne pour Moi
La exemple de code fourni la réponse à Comment ajouter de l'ombre à la fenêtre en JavaFX? fonctionne très bien pour moi (ombre portée sur la boîte de dialogue visible) sur Java 8b96, Windows 7. Quand je l'ai écrit pour JavaFX 2, il a également travaillé dans cet environnement.
Je ne pourrais pas dire exactement ce qu'il vous manque dans votre exemple que vous n'avez pas toute forme de code exécutable.
Problème Possible avec Votre Code
Ma conjecture est que vous n'êtes pas à établir l'arrière-plan du contenu, de sorte que l'espace est disponible dans la boîte de dialogue de l'ombre pour être montré. Qui est, vous remplissez la boîte de dialogue avec le contenu et ne laissant pas de place dans la boîte de dialogue autour du contenu pour que l'effet soit affiché. L'exemple ci-dessous permet d'atteindre le insetting avec la règle css
-fx-background-insets: 12;
Mise À Jour Des Exemples De Code
J'ai copié une version modifiée de l'exemple de code dans cette réponse, de sorte qu'il n'est pas seulement contenue dans un obscur gist lien hors une autre réponse. Les modifications sont à juste utiliser les appels de l'API, comme les constructeurs utilisés dans la réponse originale à cette question ont été dépréciées depuis l'original de la réplique a été créé.
ModalConfirmExample.java
modale de dialogue.css
Utiliser une Bibliothèque au Lieu
Noter également que pour la création de boîtes de dialogue je recommande fortement d'utiliser le ControlsFX projet plutôt que de créer votre propre système de dialogue. Si ControlsFX manque de fonctionnalités dont vous avez besoin (comme l'ombre portée de l'aide), vous pouvez déposer une demande de fonctionnalité pour que contre le ControlsFX de projet et des liens de retour pour cette réponse si nécessaire.
Simple de travail exemple.
Ici est
fxml
structure:Réel
screen.fxml
:Main.java
Bien, j'ai trouvé un très simple solution. Peut-être que ce n'était pas pris en charge dans les versions antérieures?
Cependant.. Le code:
La photo montre le résultat - mon intention était de montrer une icône dans le regard d'un FAB