2010-05-14 7 views
0

J'ai un petit problème avec mon programme Java. Je veux utiliser Observer, pour synchroniser deux interfaces graphiques. Mais je ne peux pas synchroniser les éléments JComponent/JButton. Par exemple:Comment synchroniser les éléments de l'interface graphique?

J'ai une interface graphique-classe qui implémente l'observateur Classe:

public class GUI extends JFrame implements Observer 

J'ai une deuxième « GUI » -Class qui étend la DButton classe et apporte des modifications sur un button- spécifique Élément.

public class Karte extends JButton{ 
... 
this.setEnabled(false); 
... 

Comment synchroniser ce bouton via Observable? J'ai déjà essayé d'utiliser "extends Observable" dans cette classe, mais la méthode "setEnabled()" est explicite pour la classe JButton, qui n'est pas observable!

Quelqu'un peut-il aider?

Merci.

+0

Je suggère d'abord de ne pas utiliser 'java.util.Observer' et' Observable', et de ne pas étendre les classes inutilement. L'utilisation de classes de modèles dans Swing est très pratique. Ensuite, ajoutez simplement des écouteurs aux modèles. –

Répondre

1

Une façon de le faire est de laisser Karte avoir un Observable (plutôt que d'être un). Il est considéré comme une bonne pratique de favoriser la composition par rapport à l'héritage, mais parfois il est simplement nécessaire que vous le vouliez ou non!

Questions connexes