Question

Imaginez que je fais simple traitement de texte avec Java Swing. J'ai un ensemble d'actions écrites pour effectuer la justification du texte. Sur la barre de menus, j'ai un menu:

View
  Left Justify
  Center Jusitfy
  Right Justify

Il est composé de JRadioButtonMenuItems et un ButtonGroup pour assurer qu'un seul élément est sélectionné à un moment donné.

De plus, imaginez que j'ai une barre d'outils équivalent composé de JToggleButtons et encore une ButtonGroup pour garantir que seul bouton peut être actif à un moment donné.

La « justify gauche » JRadioButtonMenu et JToggleButton sont initialisés en utilisant la même action, et ainsi de suite avec les autres éléments.

Ma question est la suivante: quelle est la meilleure méthode pour syncronizing les deux groupes? Si je clique sur « droit justify » icône dans la barre d'outils, je veux que le groupe dans le menu pour être mis à jour en conséquence, et vice versa.

Était-ce utile?

La solution

I après beaucoup de recherches, je trouve des informations ici . En gros, vous pouvez ajouter à la méthode actionPerformed de votre action:

action.putValue(Action.SELECTED_KEY, Boolean.TRUE);

Et cela fera tout le travail pour vous!

Malheureusement, les tutoriels officiels Sun ne couvrent pas cet aspect (ou du moins je ne l'ai pas repérer), d'où la difficulté à repérer une approche simple pour résoudre mon problème.

Autres conseils

Si vous utilisez les actions Swing les composants doivent être désactivées / activées automatiquement si l'action elle-même est. Vous pouvez vous inscrire en tant propertyListener à une action et de surveiller d'autres changements. Regardez http://java.sun.com/ JavaSE / 6 / docs / api / javax / Swing / Action.html pour une liste détaillée dont les propriétés sont disponibles.

Par contre (moi encore), vous pourriez simplement écrire 1 auditeur dans une classe externe. Un écouteur pour le menu et la barre d'outils. Lorsque 1 change, l'auditeur aussi bien les mettre à la nouvelle valeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top