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

Agents de placement/Fenêtres Java Discussion :

Refresh de JFrame apres desérialisation


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut Refresh de JFrame apres desérialisation
    Bonjour,

    J'ai une JFrame dans laquelle de nombreux elements sont disposés (JMenu, JMenuItem, etc...).

    J'ai mis à disposition une fonctionnalité de sauvegarde de la "configuration" de mon IHM afin d'éviter d'avoir à tout refaire, grâce à la sérialisation.

    La sérialisation marche bien et la désérialisation aussi, mais lorsque je veux rafraîchir mon IHM avec l'ancienne config., je n'ai aucun changements (le titre de mon IHM ne change pas et la couleur de mon onglet JTabbedPane aussi...)

    Voici ce que je fais :

    Serialisation :

    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
    35
    36
    37
    @Override
    public void actionPerformed(ActionEvent e) 
    {
    	FileOutputStream fos = null;
    	ObjectOutputStream oos = null;
     
    	try 
    	{
    		fos = new FileOutputStream(new File("E:\\config.backup"));
    		oos = new ObjectOutputStream(fos);
    		oos.writeObject(myGui);
    		System.out.println("objet serialise avec succes !");
    	} 
    	catch (FileNotFoundException e1) 
    	{
    		e1.printStackTrace();
    	}
            catch (IOException ioe) 
    	{
    		// TODO Auto-generated catch block
    		ioe.printStackTrace();
    		System.out.println("Message = "+ioe.getMessage()+"\n"+ioe.getCause());
    	}
    	finally
    	{
    	        try
                    {
    			oos.close();
    			fos.close();
    		} 
                    catch (IOException e1) 
                    {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}			
    	}
    }
    Déserialisation :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    @Override
    public void actionPerformed(ActionEvent e) 
    {
    	FileInputStream fis = null;
    	ObjectInputStream ois = null;
     
    	try 
    	{
    	        fis = new FileInputStream(new File("E:\\config.backup"));
    		ois = new ObjectInputStream(fis);
     
    		System.out.println("AVANT DEserialisation (AVANT chargement), titre appli = "+myGui.getTitle());
    		myGui.getMainFrame().invalidate();
    		myGui = (GUI) ois.readObject();
    		System.out.println("objet DEserialise avec succes !");
    		myGui.getMainFrame().validate();
                    myGui.getMainFrame().repaint();
    		System.out.println("APRES DEserialisation (APRES chargement), titre appli = "+myGui.getTitle());
    	} 
    	catch (FileNotFoundException e1) 
    	{
    		// TODO Auto-generated catch block
    		e1.printStackTrace();
    	}
    	catch (IOException ioe) 
    	{
    		// TODO Auto-generated catch block
    		ioe.printStackTrace();
    	}
    	catch (ClassNotFoundException ioe) 
    	{
    		// TODO Auto-generated catch block
    		ioe.printStackTrace();
    	}
    	finally
    	{
    		try 
                    {
    			ois.close();
    			fis.close();
    		}
                    catch (IOException e1) 
                    {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}			
    	}
    }
    Je précise que je fais ça dans un controleur car j'éssaie d'utiliser au max. l'architecture M-V-C.

    Je précise également que cela ne vient pas de la déserialisation car lorsque j'ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myGui.setVisible(true); // Mis en fin de déserialisation
    la nouvelle fenêtre apparaît nickel et je retrouve bien les bons attributs :
    AVANT DEserialisation (AVANT chargement), titre appli = IHM NON SAUVEGARDEE
    objet DEserialise avec succes !
    APRES DEserialisation (APRES chargement), titre appli = IHM SAUVEGARDEE
    Je pense donc que mon problème porte donc dans l'utilisation des méthodes : invalidate(), validate(), revalidate(), paint()...

    Merci d'avance pour votre aide et désolé pour la longueur de mon post

  2. #2
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Par défaut
    Bonjour,

    Toujours pas de réponse?

    Une aide ne serait pas de refus.... Merci.

    PS : Je me dis que mon problème vient peut-être de ma conception MVC foireuse...

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Citation Envoyé par Lionkid Voir le message
    lorsque j'ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myGui.setVisible(true); // Mis en fin de déserialisation
    la nouvelle fenêtre apparaît nickel et je retrouve bien les bons attributs :
    Ben alors je ne comprends pas, tu récupère l'ihm telle que tu l'avais sauvegardée, t'arrive à l'afficher, elle a le bon titre, c'est quoi le soucis?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Je n'ai pas compris l'intérêt de la serialisation de la fenêtre !?

    Attention que ceci n'est pas portable du tout !

    a++

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    effectivement, par portable d'une version à l'autre de java ou d'un os à l'autre. Mais si on reste à de la sérialsiation "courte durée", ca reste plus simple à mettre em place que d'aller explorer tous les composants que l'utilisateur peut avoir déplacé.

Discussions similaires

  1. Affichage d'un JPanel JFrame après removeall et ActionListener
    Par JannyBoop dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 28/09/2009, 01h20
  2. Perte de focus d'une JFrame après un toFront()
    Par MonsieurSmith dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 16/01/2009, 11h38
  3. Refresh fenetre parent apres fermeture d'un popup
    Par tompalmeras dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/04/2008, 12h02
  4. rouvrir un JFrame après un dispose : problème de focus
    Par MademoiselleL dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 10/03/2008, 23h50
  5. Refresh de JFrame
    Par willowII dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 18/05/2006, 00h28

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