Comment mettre en arrière-plan transparent de JDialog
Hy,..
comment puis-je régler l'arrière-plan transparent et "supprimer" les closeoperation (marqué en rouge) ?
Je veux seulement montrer la carte 🙂
Merci..!
De noter que le niveau de conteneurs comme JDialog, JFrame et JApplet n'étaient pas destinés à être transparent. Il y a un hack mentionné dans un article Sun pour permettre la transparence et la courbe de windows (à l'aide de com.soleil des classes), mais il a cessé de travailler. Java 7 est censé réintroduire (dans le J2SE) translucide/transparent Tlc.
Je pense que cela peut vous aider: java.sun.com/developer/technicalArticles/GUI/...
Je pense que cela peut vous aider: java.sun.com/developer/technicalArticles/GUI/...
OriginalL'auteur Christian 'fuzi' Orgler | 2011-01-07
Vous devez vous connecter pour publier un commentaire.
yourDialog.setUndecorated(true)
devrait faire l'affaire pour la barre de titre.Pour avoir l'Image transparente. Vous aurez à travailler sur la racine du panneau avec
yourDialog.getRootPane().setOpaque(false)
.Argh, je ne suis pas sur mon environnement de développement maintenant. Je vais le tester et de revenir quand je peux mettre mes mains sur le droit de l'ordinateur.
Jusqu'à ce que je peux faire un test, vous devriez peut-être essayer avec un JWindow (qui est livré par défaut sans décor). Vous devriez peut-être jeter un œil à l'écran d'accueil de la fonctionnalité de Java6.
merci.. je l'ai fait avec un JWindow.. la décoration est parti - mais l'arrière-plan est visible... hm
Salut, j'ai ensuite vérifié dans notre base de code. Nous sommes à l'aide d'une nudité JFrame que le AboutBox. L'image est de prendre la totalité de l'écran et est rectangulaire donc nous n'avons pas le problème de la transparence. Andrew, a déclaré, aujourd'hui, il sera plus proche de hack alors rien d'autre pour le faire fonctionner comme aujourd'hui. Comme l'a dit, vous pourriez peut-être essayer de creuser dans le SplashScreen (java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/...) pour voir si vous pouvez réutiliser quelque chose.
OriginalL'auteur LudoMC
Bien qu'il n'y a pas de problème avec la NUDITÉ JFrame transparence (myJFrame.setBackground (nouvelle Couleur (0,0,0,0)); est assez joli), la même chose avec JDialog ne fonctionne pas.
J'ai découvert, cependant, la séquence suivante fonctionne parfaitement pour JDialog:
Un également rester, mais c'est mon humble suggestion, que tous les setBackground appel de la Fenêtre de multiplicateurs de focale (par exemple, JFrame, JDialog) doit être essayé à l'encontre de UnsupportedOperationException et IllegalComponentStateException.
Je pense que c'est mieux si je recevoir de l'exception et de le corriger.
getContentPane().setBackground
n'était pas nécessaire dans mon casOriginalL'auteur Tomek
J'ai suivi les instructions à partir de l'article et cela a fonctionné enfin, ET ce n'était pas bien difficile. 🙂
J'ai maintenant mon translucide SplashImage sna Sur l'écran qui affiche une image au format PNG et le respect de ses (complexe) de la transparence. Tout simplement génial.
Notez que la méthode de procéder va changer un peu dans le JDK 7.
Il suffit de remarquer la différence entre les mots clés.
http://download.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html#6u10
Il aurait été agréable si l'
astuce a fonctionné, mais il n'a pas à moi. Peut-être que j'ai fait quelque chose de mal.
Je note aussi, il est important d'utiliser setContentPane(Composant); au lieu de getContentPane.add(Component);
Je suis content que ça fonctionne maintenant ! 🙂
Oui, c'était plus comme un commentaire plutôt qu'une réponse. Je suis assez novice ici, je n'ai pas compris comment le site est organisé, désolé. 🙂 Par ma façon de réussir est de la translucidité sous windows, mais je n'ai pas AWTUtilities sous Linux donc je ne peux pas faire cela.
OriginalL'auteur 猫IT