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 :

Blocages d' interface


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Par défaut Blocages d' interface
    bonjour,

    voici mon problème :
    Je développe actuellement un logiciel en java, et de temps en temps, lors des tests, mon interface se bloque a priori sans raisons. Le programme se retrouve alors complètement bloqué et je dois faire ctrl alt supp pour terminer. Celà arrive même parfois en exécutant du code dont je suis sûr du bon fonctionnement (par exemple en cliquant sur un bouton ouvrant une simple fenêtre) et une fois mon application fermée, si je reteste exactement la même chose, ça marche très bien...

    Je me dis donc que c'est un problème qui se produit à un niveau que je maitrise pas... Le problème, c'est que ça arrive quand même relativement souvent et mon chef commence à me demander des explications là dessus...

    j'utilise la version 1.6.0_03-b05 de java, je développe avec eclipse 3.2.1 j'utilise également les librairies swingx pour l'interface et le look n feel substance (je sais pas trop si ça peut venir de là mais je préfère en dire trop que pas assez...) .

    Voilà si quelqu'un pouvait me donner une piste de recherche pour résoudre mon problème, voire même me donner une solution miracle, je suis preneur !!

    merci

  2. #2
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Bonjour
    quand tu lance tes fenetres tu termines bein le processus de lancement de la fenetre? tu peux poster juste le code associer a ton bouton pour lancer une fenetre? et quand ça plante tu n'a pas de message d'erreur dans la console?
    tu utilise des threads?
    @+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Par défaut
    merci pour ta réponse

    Je suis plus au boulot et j'ai plus mon code sous la main

    Et en fait ça plante pas à des endoits précis...
    ça peut planter vraiment au tout début :
    - on ouvre le logiciel
    - on fait fichier, nouveau et là ça plante
    - on referme le logiciel (comme un bourin avec éclipse ou ctrl alt sup parce que le programme ne répond plus à rien) et on refait pareil et là ça plante pas....

    des thread j'en utilise mais à des endroits précis uniquement (chargement et sauvegarde de fichiers)

    et par contre non je n'ai pas d'erreurs dans la console...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Par défaut
    voilà un exemple de code d'ouverture de fenêtre qui vient de tout faire planter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FenetreWizard wizard = new FenetreWizard(
    			FabriqueWizard.NOUVELLE_CESSION_FAITE_ANIMAUX,
    			contenuWizardTemp.getActivite(),
    			contenuWizardTemp);
    		wizard.setVisible(true);
    FenetreWizard est une classe dérivant de JDialog, le code contenu dans le constructeur est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public FenetreWizard(String wizardDemande) {
    	super();
    	LookAndFeel temp = UIManager.getLookAndFeel();
    	this.modifierLookAndFeel();
    	this.initialize();
    	this.contenuWizard = FabriqueWizard.chargerWizard(wizardDemande, this);
    	this.getBoutonAnnuler().setEnabled(this.annulerActif);
    	this.restaurerLookAndFeel(temp);
        }
    Le code du constructeur fonctionne à priori bien, la seule subtilité est le changement de look n feel

    voilà le code de modifierLookAndFeel et restaurerLookAndFeel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    /**
         * Modifie le lookandfeel pour mettre celui correspondant à la fenêtre
         * 
         */
        public void modifierLookAndFeel() {
    	try {
    	    // UIManager.setLookAndFeel(new WindowsLookAndFeel());
    	    // UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    	    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    	} catch (UnsupportedLookAndFeelException e) {
    	    e.printStackTrace();
    	} catch (ClassNotFoundException e) {
    	    e.printStackTrace();
    	} catch (InstantiationException e) {
    	    e.printStackTrace();
    	} catch (IllegalAccessException e) {
    	    e.printStackTrace();
    	}
        }
     
        /**
         * Permet de restaurer le lookAndFeel de l'application
         * 
         * @param ancienLookAndFeel
         *                lookAndFeel à restaurer
         */
        public void restaurerLookAndFeel(LookAndFeel ancienLookAndFeel) {
    	try {
    	    UIManager.setLookAndFeel(ancienLookAndFeel);
    	} catch (UnsupportedLookAndFeelException e) {
    	    e.printStackTrace();
    	}
        }
    par contre krachik je n'ai pas compris ce que tu voulais dire par "quand tu lance tes fenetres tu termines bein le processus de lancement de la fenetre?"

    voilà là je vais faire un fichier de log pour essayer de détecter l'endroit ou ça se passe ( sachant que ça peut se passer n'importe où à priori)

    à+

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Je ne sais pas si ça peut aider mais as tu essayé en enlevant l'appel aux méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.modifierLookAndFeel();
    this.restaurerLookAndFeel(temp);
    Pourquoi changer de L&F en cours d'application ? cela risque de déstabiliser l'utilisateur par manque d'homogénéïté entre les différents écrans.

  6. #6
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut
    bonjour à tous,

    les dernieres versions de la librairie "substance" oblige l'utilisateur à utiliser le Dispatch Thread pour intéragir avec l'interface graphique et si on fait autrement cela bloc l'interface.

    je ne sais pas quel version de substance vous utilisez mais si c'est une version qui est apparue apres la 4.3 cela peut venir de la.

    vous devriez essayer sans le Look & Feel et voire si le problème persiste.

Discussions similaires

  1. [XL-2010] Blocage de l'interface graphique
    Par alexandre.beaujault dans le forum Excel
    Réponses: 2
    Dernier message: 07/06/2015, 07h27
  2. Blocage lors de démarrage de l'interface graphique : ps2pdf
    Par Herve_G dans le forum Administration système
    Réponses: 2
    Dernier message: 04/11/2011, 22h36
  3. [Java TWAIN] blocage de l'interface SWING
    Par azazazs dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 26/04/2009, 20h32
  4. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 17h15
  5. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 13h27

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