IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Changer de locale à l'éxecution d'un programme Swing


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut Changer de locale à l'éxecution d'un programme Swing
    Bonjour,

    Ma question est simple et assez succincte. Je développe une aplication swing avec une fenêtre MDI et des menus. Depuis une fenêtre de type internalJframe fille d'un composant Jdesktop, j'ai ajouté une combobox pour changer la langue de l'application.

    Comment faire pour appliquer automatiquement le changement de locale à tous les textes, les libellés, les titres des menus, sans avoir à redémarrer l'application?

    Faut il ajouter des PropertyChangeLlisteners de type menu,label à cette combobox ?
    D'avance merci, pour vos lumières....

    Emmanuel

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Effectivement il va falloir écouter les événements de ta combobox. Et parcourir tous tes composants pour mettre à jour leurs libellés/valeur/titres.

    Il faut également modifier la locale de tous les composants construits (affichés ou non). Car les fenêtre comme JOptionPane et JFileChooser utilisent la locale du composant parent qui est initialisée soit à la création d'un composant, soit lors de l'initialisation d'AWT/Swing. Possible que changer uniquement la locale de la Frame/Window racine suffise mais pas sûr. Je ne me rappelle plus comment est récupérée la locale d'un composant.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Principalement il te faut mettre en place un système de listener au niveau des changements de locale. Puis faire en sorte que toutes tes classes graphiques implémentent ce Listener (et donc implémentent une méthode de rechargement de leur libellés/images et autres ressources localisables), et s'enregistrent au niveau de la la classe que tu utilises pour gérer les Locales. Puis à chaque changement de Locale, la classe responsable de la gestion des Locales crée un Event et le proposage à toutes les classes enregistrées.

    Tu peux t'inspirer du tutoriel suivant pour mettre en place un tel système: http://rom.developpez.com/java-listeners/

  4. #4
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut
    Merci tous les deux pour vos réponses. Meme si cela ne semble pas évident au premier abord si l'on compare avec d'autres langages de prog(VB...). Bon je sais , je m'égare. Veuillez m'en execuser.

    J'ai trouvé un lien intéressant sur stackoverflow et je vous en propose ici la réfléxion.

    Cordialement

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ce qu'ils disent sur StackOverFlow correspond à la proposition que j'ai fait juste au dessus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. changer la locale par programmation
    Par skunkies dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/01/2009, 10h18
  2. Réponses: 3
    Dernier message: 20/03/2008, 21h16
  3. Changer la culture d'un ascx par programme.
    Par jab dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/09/2007, 14h53
  4. [VBA-E] Problème d'éxecution d'un programme
    Par julio26 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 04/03/2007, 14h10
  5. [Locale] Changer de Locale
    Par shima dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 30/06/2004, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo