2008-12-16 4 views
14

Je travaille avec Swing depuis un moment maintenant, mais le modèle/la structure entière de JFrame s, paint(), super, etc est tout trouble dans mon esprit. J'ai besoin d'une explication claire ou d'un lien expliquant comment le système GUI est organisé.Java GUI Swing Modèle Explication

Répondre

13

La même chose m'est arrivée. En fait, à ce jour, je ne comprends pas à 100% comment tout cela fonctionne.

Swing est un framework très flexible - peut-être trop flexible. Avec la flexibilité vient beaucoup d'abstraction et avec l'abstraction vient la confusion. :)

J'ai trouvé les articles suivants dignes d'intérêt. Ils m'ont aidé à mieux comprendre la grande image de Swing.

Ils expliquent très bien comment le modèle et le travail des délégués. Il me pousse toujours en colère quand je vois les JLabel, LabelUI, ui.update, etc.

+1

Lien très utile - n'avait pas vu cela avant; mis en signet pour un examen plus approfondi plus tard. –

+0

Yeahh ... Je ne me souviens pas comment je suis arrivé à ce lien. Je ne l'ai pas trouvé avant plusieurs années. Je ne connais pas la "recherche google" pour la produire non plus, donc je l'ai aussi dans mes signets. – OscarRyz

+0

Les liens @OscarRyz sont morts. avez-vous la copie? J'ai besoin de ceux pour mes étudiants. Merci. – ihsan

2

Avez-vous regardé le didacticiel Java Swing (cliquez sur here)? Il fait un bon travail de couvrir les bases du développement d'applications Swing.

0

Filthy Rich Clients par Chet Haase et Romain Guy est un grand livre sur Java UI. Il couvre aussi des sujets plus avancés, mais l'introduction et quelques premiers chapitres expliquent bien les choses fondamentales.

0

Si, après avoir lu le didacticiel Swing, vous vous intéressez à des sujets plus avancés, vous pouvez également consulter le document Swing Second Edition de Robinson and Vorobiev.

2

Depuis cette question est étiqueté JFrame, je vais vous suggérer quelques liens pour comprendre comment fonctionnent les JFrame s et d'autres conteneurs Swing de haut niveau.

J'ai également trouvé que Swing était (et est toujours) très impliqué et que jeter un oeil à la documentation fournie par Sun est nécessaire de temps en temps - Chaque fois que je vérifie, je semble apprendre quelque chose de nouveau.

Tout d'abord, les bases: JFrame classe à partir des spécifications de l'API Java. Les spécifications de l'API Java fournissent souvent de bonnes informations détaillées sur les classes. Dans ce cas, vous remarquerez qu'il existe plusieurs liens tels que la section How to Make Frames dans les tutoriels Java. En dehors de cela, je vous recommande également de regarder le Lesson: Using Swing Components de The Java Tutorials. La leçon fournit des instructions sur l'utilisation des composants fournis dans Swing ainsi que des exemples utiles.

Pour plus de détails spécifiques que j'ai trouvé confus lorsque j'ai commencé avec Swing était tous les différents types de volets, tels que le ContentPane, RootPane, GlassPane. La section Using Top-Level Containers fournit des informations et des diagrammes utiles sur la hiérarchie de conteneur des conteneurs de niveau supérieur. La section How to Use Root Panes aborde les détails des panneaux de verre, de calque et de contenu avec de nombreux exemples.

0

J'ai trouvé que simplement naviguer dans le code source (ctrl-clic sur un nom si vous utilisez NetBeans) a été très utile. Si je vois une méthode dans la boîte de dialogue de complétion que je ne connais pas, je clique simplement sur "Aller à la source" et regarde autour de moi jusqu'à ce que je sois à l'aise.

1

J'ai trouvé Swing Explorer être un outil précieux pour comprendre la hiérarchie des composants (en particulier dans les interfaces graphiques complexes) et regarder les propriétés (hélas, en lecture seule: nous nous habituons à la commodité Firebug!). Il a un plugin Eclipse.