2010-03-20 5 views

Répondre

4

Je ne pense pas que vous pouvez faire quelque chose sur les couleurs dans la barre de titre d'un JFrame, du moins pas sans utiliser le code natif pour implémenter une solution spécifique à la plate-forme. C'est parce que JFrame utilise réellement votre système de fenêtrage natif pour créer la fenêtre. En ce qui concerne les cadres internes, il serait logique que vous puissiez le personnaliser, car il s'agit d'un composant rendu à l'intérieur d'une fenêtre contrôlée par Java. En effet, il y a beaucoup de JInternalFrame properties that you can set in your UI manager. Cependant, je n'ai pas réussi à les faire fonctionner sur mon système. Faire un peu de googling, il semble que others have found that you cannot change the appearance of JInternalFrame without changing your whole system's look and feel settings. Donc, je crains que vous pourriez avoir à dépendre du système d'exploitation pour contrôler les couleurs de vos barres de titre, même lorsque vous utilisez des cadres internes.

+0

Je pense que vous avez à peu près ont _exactement_ décrit l'esprit et l'intention de la portée de JFrame et JInternalFrame. Comme les classes Frame JFrame et AWTs sont plus ou moins l '"Interface" entre la couche GUI Java et la couche GUI OS. Le seul endroit où je pense que cette portée est un peu "floue" est grossier par JFrame car il a des contrôles qui sont probablement manipulés au niveau de la couche GUI du système d'exploitation - je me souviens des premiers jours de Swing. les paramètres semblaient être des "suggestions" à la couche GUI de l'OS alors qu'ils essayaient de décider comment positionner Swing en ce qui concerne le système d'exploitation. – Wintermut3

1

OK Je pense que Joe dit mieux, mais rappelez-vous que vous pouvez décider de ne pas décorer le cadre, puis dans le cadre offrent la possibilité de le décorer vous-même. J'ai un ensemble de conteneurs personnalisés AWT qui font exactement cela. Le résultat est une interface graphique qui ressemble ou ne se comporte pas comme un cadre typique - pas "rectangulaire" ou "carré" "immobilier", mais quelque chose de plus comme les Skins d'applications comme Winamp qui causent la forme de l'interface graphique asymétrique dans la conception et regarder en utilisant le niveau Alpha dans la couche OS GUI. Dans mes conteneurs Skin-able la "peau" est une image qui est "cookie cut" d'une seule image et ensuite basée sur la géométrie de la classe Skin dessiner et maintenir ces zones décrites - je mentionne seulement cela comme un moyen de littéralement "penser en dehors de la boîte" du type de problème.

WM

+0

En regardant à nouveau la réponse de Joe, je pense qu'il est important - comme au fil des années a obscurci cela - de se rappeler que la façon dont une interface graphique Java interagit avec une plate-forme OS et le rendu est Crux de l'AWT. Pardonnez-moi aux anciens Java Gurus de le signaler, mais je pense qu'il y a un grand groupe de programmeurs Java qui ne comprennent pas vraiment l'AWT ou même le Java dans son ensemble qui mène à ça: lire "heavy weight components" vs " composants légers "si curieux :) et beaucoup deviendra clair. – Wintermut3

Questions connexes