2010-06-13 3 views
2

Je suis un peu nouveau dans la programmation de gui, donc j'ai lu tous les articles sur ce site concernant le swing et le design. Ce qui a été répondu encore et encore, c'est que l'on devrait avoir une classe multiton pour les actions. Comme ceci: (GUI étant un peu JFrame)Plus de design et d'actions de swing

alt text http://img341.imageshack.us/img341/255/skjermdump.png

Maintenant, cela fonctionne très bien pour les actions à sens unique, comme OpenDialog. Mais les actions pour les boutons dans DialogA et B devront avoir accès à tous les composants (il y en aura beaucoup) dans son dialogue, et le controller. C'est où je suis coincé.

La seule façon saine d'esprit que je peux voir est à mettre dans DialogA/Bmais je alors besoin de passer le controller tout le chemin vers le bas, à travers des cours qui n'avez pas encore besoin, et ça va obtenir tous les spaghettis. Je ne veux vraiment pas ça.

Quelqu'un a déjà rencontré ce problème. Alors, où dois-je mettre ce Action? Ou devrais-je simplement laisser tomber le design entier?

Modifier: a obtenu une bonne réponse d'ailleurs. Résolu.

+0

Pouvez-vous être plus précis? Je ne suis pas capable de comprendre ce design ou ce que vous essayez de faire ou quel est le problème. – davetron5000

+0

@takoi Je ne peux pas voir l'image. Si c'est du code, postez le ici ou si c'est autre chose [téléchargez-le en utilisant le formulaire] (https://stackoverflow.com/questions/28496851/how-to-upload-pictures-to-stackoverflow-for-posting) – bracco23

Répondre

1

Dans MVC, le contrôleur et la vue accèdent l'un à l'autre, le contrôleur protège la vue du modèle. La meilleure chose à faire est de placer votre ActionHandler en tant que classe anonyme et de le rappeler simplement à votre vue qui à son tour appelle le contrôleur.
Si vous voulez vraiment avoir une Superclasse de contrôleur qui a des messages génériques pour envoyer un message et passer dans une HashMap, cela vous donne une bonne séparation de code, mais ajoute de la complexité et supprime la vérification de type.