JavaFX: pouvez-vous créer une scène qui n'apparaît pas sur la barre des tâches et de nudité?
Je suis en train de créer une scène qui n'apparaît pas sur la barre des tâches de Windows et est sans décor (pas de frontières et pas de fermer/réduire/agrandir les boutons). Mon objectif final est de créer une icône de barre d'état de l'application qui sera pop-up de notification windows.
Il est semblable à cela question où je veux le comportement de ces deux StageStyle.UTILITAIRE (qui empêche le stade de s'afficher dans la barre des tâches) et StageStyle.TRANSPARENTS (ce qui est complètement sans décor de la fenêtre).
Référencé dans la question ne fonctionne pas pour moi parce que je n'ai pas de parents scène à partir de laquelle pour faire une fenêtre modale. Toutes les idées sur la façon d'obtenir que cela fonctionne? Grâce
Vous devez vous connecter pour publier un commentaire.
J'ai été en mesure de contourner ce problème avec le code suivant:
StageStyle.UTILITAIRE d'éviter de créer une icône de barre des tâches. Je définir la largeur et la hauteur à 0 faire de la fenêtre, puis en phase d'exploitation.setX(Double.MAX_VALUE) pour le placer loin de l'écran de sorte qu'il n'apparaît pas. C'est un peu à l'eau de rose, mais il semble bien fonctionner.
JavaFX ne prend pas en charge la fonctionnalité de vous demander
Vous ne pouvez pas faire ce que vous demandez (pas une tâche icône de la barre pour un non ou transparent stade) en utilisant simplement le noyau de Java 8 classes.
Si vous le souhaitez, déposer une demande de fonctionnalité pour cette dans le JavaFX issue tracker.
Vous pouvez écrire certains indigènes JNI code et peut-être de dire à Windows de ne pas afficher la barre des tâches l'icône de votre application. Je ne sais pas comment vous le faire.
Suggestion sur les icônes de la barre de tâche
Je pense que c'est assez standard windowing toolkit comportement pour afficher la fenêtre principale de l'application dans la barre des tâches lorsque la fenêtre principale de l'application n'est pas caché, alors je vous suggère de ne pas essayer de contourner ce comportement standard.
Suggestion sur les notifications et les icônes
Ce n'est pas directement liée à votre question titre, mais est juste un commentaire sur l'objectif de la fin de votre tâche - de notifications pour les icônes du systray.
La plupart du bac en fonction des applications que j'ai vu n'avez pas de barre des tâches icône de la fenêtre associée à l'icône de la barre est caché, mais l'icône de la barre des tâches lorsque la fenêtre associée à l'icône de barre d'état est affichée - alors je vous suggère de vous en tenir avec cette configuration.
Aussi, les notifications sont une partie normale de l'icône de plateau de système de l'infrastructure elle-même, donc je vous suggère d'utiliser les mécanismes standard pour l'icône de plateau de système de notifications, plutôt que d'utiliser votre propre. Cela permettra également à l'utilisateur de configurer si l'icône et les notifications sont affichées en utilisant le standard de l'OS icône de la barre de notification et de gestion de l'Isu.
J'ai créé un exemple d'application qui utilise l'AWT la barre des tâches de l'API pour fournir un Système de plateau pour une JavaFX application qui utilise certaines des suggestions à partir de cette section. Vous pouvez l'essayer si vous le souhaitez.
Complète du système de support du plateau viendra à JavaFX (probablement avec Java 9) lorsque RT-17503 de créer un système de support du plateau d' est mis en œuvre.
Cette question n'est pas vraiment nouveau, mais j'ai eu le même problème et pas trouvé de solution au premier abord, mais voici ma solution 🙂
La meilleure solution que j'ai trouvé était de définir la primaryStage de style Utilitaire et de faire toutes les childStages de Style de Nudité. Ensuite, réglez l'opacité de la primaryStage à 0.0, donc ce n'est pas visible:
PrimaryStage:
Childs:
Exemple de code
Inspiré par @Loki solution avec un peu de mise à niveau (à mon avis)
JavaFX N'soutien.
Ne mettez pas la méthode main() dans votre classe d'Application. Il suffit de créer une autre classe à votre classe principale:
Autant que je sache, JavaFX et Swing sont interopérables et swing prend en charge cette fonctionnalité. Donc, si vous pouvez utiliser Swing, d'intégrer quelque chose comme ceci dans votre application:
Je n'ai pas essayé cela, mais sur les autres de SORTE à des questions comme ce sera probablement vous aider sur la façon d'utiliser le Swing en JavaFX.