J'ai une forme qui est divisée en deux classes. Chaque classe représente les widgets sur une partie du formulaire. Quelle est la meilleure façon de permettre à ces classes de partager des données entre elles et de se mettre à jour les unes les autres. Exemple: Le bouton de la classe A est cliqué. Mettre à jour le champ de texte dans la classe CCommunication entre classes
Répondre
est très court ce que vous pouvez faire:
public class ButtonFrame extends JFrame implements ActionListener
{
private TextFieldFrame frame;
public ButtonFrame(TextFieldFrame frame)
{
this.frame = frame;
// init your components and add this as actionlistener to the button
....
}
public void actionPerformed(ActionEvent evt)
{
frame.notifyButtonPressed();
}
}
L'autre classe:
public class TextFieldFrame extends JFrame
{
private JTextField field = ...; // init in your constructor
public void notifyButtonPressed()
{
field.setText("Yes man!! The button is pressed by the user!");
}
}
Encore une fois, ce qui est très court ce que vous avez faire. Vous pouvez également travailler avec un modèle Singleton
, mais c'est une meilleure façon.
Vous pouvez créer une classe qui contient tous vos objets de formulaire. Les classes de formulaire connaissent toutes la classe parent et communiquent dessus.
Si un bouton est cliqué dans la classe A, la classe A appelle une méthode dans la classe parente et la classe parente notifie à la classe C de mettre à jour son champ de texte.
Ne pensez pas au widget. Concevez votre application sur des modèles. Avoir des widgets en tant que fenêtres sur ces modèles. (Et ne couvrent pas les classes inutilement.)
Jetez un oeil à Mediator pattern, il pourrait vous donner quelques idées.
En outre, l'objectif du framework JFace Databinding est la synchronisation des valeurs entre les objets, bien que je trouve cela mal documenté et pas très amusant à utiliser. JFace_Data_Binding
- 1. Communication de l'objectif C entre les classes
- 2. C# classes communication conception question
- 3. Java Communication entre les classes et JFrame JDialog
- 4. Communication entre programmes .NET
- 5. La communication entre les
- 6. Communication entre les vues
- 7. Communication entre différentes formes
- 8. Communication entre les formulaires
- 9. Communication entre les pages
- 10. Communication entre applications intranet
- 11. Communication entre plusieurs serveurs
- 12. Communication entre view controllers
- 13. communication entre deux applications flex
- 14. Communication entre les vues Contrôleurs
- 15. La communication entre deux serveurs
- 16. Communication entre threads dans PySide
- 17. Communication entre deux nœuds Cassandra
- 18. communication entre applications (.NET + java)
- 19. Communication entre fichiers batch parallèles
- 20. Iphone SDK - Communication entre objets
- 21. Communication entre les fichiers flash
- 22. Communication entre Rails et WCF
- 23. La communication entre les modules
- 24. Communication entre deux émulateurs Android
- 25. Communication asynchrone entre deux applications
- 26. Communication entre deux applications Flex
- 27. la communication entre UpdatePanels ASP.Net
- 28. Communication interprocessus entre 2 applications
- 29. Portée et communication entre les objets
- 30. Communication entre instances EJB3 (communication inter-bean Java EE) possible?