2009-10-19 6 views
0

J'essaie d'internationaliser une applet Java et de supporter les scripts écrits de droite à gauche. Je veux configurer les orientations des composants pour tous les composants Java ajoutés automatiquement à la vue.Écoute de tous les événements JInternalFrame - Java

Ma solution a donc beaucoup à écouter tout en utilisant de AWTEvent les fenêtres masque:

c.getToolkit().addAWTEventListener(listener, AWTEvent.WINDOW_EVENT_MASK); 

... puis définir le c/o sur chaque fenêtre ajoutée, ainsi que l'ajout d'auditeurs de composants pour définir c/o sur tous les composants ajoutés à la fenêtre à un moment ultérieur. Mon problème est que JInternalFrames ne sont pas gérés par cette solution, je veux être en mesure d'ajouter un autre écouteur pour ces événements, tout comme je l'ai fait pour Windows. Des idées? Ou bien, y a-t-il de meilleures approches pour gérer la direction du script pour tous les composants d'une applet?

Répondre

0

Ajoutez un ContainerListener au panneau JDesktopPane. Lorsqu'un composant est ajouté au bureau, vous pouvez changer son orientation.

+0

J'ai déjà eu ça mais je pensais que ça ne fonctionnait pas ... Je réalise maintenant que c'était un autre problème qui causait des problèmes. Merci quand même. –

0

AWTEventListener sur l'actuel Toolkit ne vous donnera que des événements provenant de la boîte à outils. Généralement, les événements générés par des composants légers ont été causés par des événements de souris ou de clé.

Demander tout ce qui se passe dans un processus est généralement un très mauvais signe. Un code de bas niveau est en train d'élaborer une politique pour l'ensemble du programme. Une approche bien meilleure consiste à ajouter des écouteurs près de l'endroit où vous créez le composant, avant qu'il ne soit "réalisé". Ce code est répété, mais vous avez probablement déjà du code répété. Donc factoriser dans une méthode. Ensuite, vous n'avez qu'un seul endroit à mettre à jour, sauf si vous avez des cas où cela ne s'applique pas, ce qui aurait brisé l'approche globale.

Questions connexes