2010-03-27 3 views

Répondre

6

Fondamentalement, un composant Swing est lui-même un contrôleur, qui fait référence à une vue et un modèle. La vue est dans le champ JComponent.ui héritée par tous les composants de swing et utilisée par le mécanisme Look & Feel pour fournir différentes représentations visuelles des composants Swing.

Il existe différentes méthodes setModel() dans les différentes sous-classes qui utilisent différents types de modèles tels que TableModel ou ButtonModel, qui peuvent être mises en œuvre par un programmeur d'application pour contenir les données réelles que l'affichage de l'interface utilisateur Swing et manipule.

+2

Votre déclaration globale est vrai, et pour ajouter un peu plus, la plupart des composants visuels - comme JTable mentionné ci-dessus - utilisent un design MVC. @JavaUser Regardez dans le "DefaultXX" [XX = JSomethingModel, ie DefaultListModel] quand vous travaillez avec Swing ... Il vous donnera une bonne compréhension du modèle d'une classe Swing donnée et dans la plupart des cas est suffisant pour utiliser comme modèle _your_ dans votre application – Wintermut3

+0

C'est un piège d'utiliser le modèle de Swing comme modèle de votre application. Il n'a aucune logique et fait vraiment partie de la vue. – flup

2

J'ai une très bonne expérience en utilisant Presentation Model de Martin Fowler et son implémentation Java Swing.

+1

martin fowler utilise C#, non? – Karussell

+0

de nos jours, il utilise principalement ruby ​​ –

+0

L'article est indépendant de la langue, modèle de présentation fonctionne très bien avec les classes de modèle Swing dans la vue. – flup

4

Regardez javax.swing.JTable et javax.swing.table.TableModel. JTable est la vue, TableModel est le modèle et le code que vous écrivez avec les écouteurs et les événements sont les contrôleurs qui indiquent quand la vue doit être mise à jour.

+0

En fait, la vue serait une sous-classe spécifique à L & F de BasicTableUI –