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

Interfaces Graphiques en Java Discussion :

Petit probleme avec les Border lors d'une sauvegarde


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    Par défaut Petit probleme avec les Border lors d'une sauvegarde
    Yop ! Encore moi


    Ce coup-ci j'ai un leger bleme avec les bordures ...

    Dans mon programme, je donne à un Jpanel un layout GridLayout (qui va contenir 9 JButton (3*3)); je spécifie bien que je ne veux pas de bordures pour les JButton avec cette commande :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabjbposs[i][j][k].setBorder(null);
    Et d'ailleurs, ça marche très bien !



    Autre part dans mon programme, l'utilisateur a la possibilité de sauver la partie en cours (Sudoku).
    "Quel rapport ?" me direz-vous !!

    Et bien, à partir du moment où la sauvegarde a été faite, les bordures s'affichent !!! Incroyable, je n'y comprends rien moi-même !!!

    Voici le code de ma sauvegarde (qui fonctionne très bien aussi) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public void sauvegarde(){               
            try {
                FileOutputStream fichier = new FileOutputStream("sudomi.jeu");
                ObjectOutputStream oos = new ObjectOutputStream(fichier);
                oos.writeObject(pgrm.getJeu().getSudomodele());    
                oos.flush();
                oos.close();
            }
            catch (java.io.IOException e) {
                e.printStackTrace();
            }          
        }
    Si vous, vous y percevez qqch de cohérent, faites-moi signe

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    Par défaut
    Ben alors les p'tits génies, vous sechez ???

  3. #3
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    As-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    Par défaut
    Ca marche !!!

  5. #5
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Juste une petite remarque sur ton code: utilise try/finally comme ceci:
    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
    public void sauvegarde(){               
            try {          
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("sudomi.jeu"));
                try{
                  oos.writeObject(pgrm.getJeu().getSudomodele());    
                  oos.flush();
                 }finally{ 
                 oos.close();
                 }
            }
            catch (java.io.IOException e) {
                e.printStackTrace();
            }          
        }
    ça permet de fermer le flux et ainsi libérer les ressources si une erreur survient lors de l'utilisation du flux.

    Tu trouveras plus d'informations là-dessus dans ce tutoriel .


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    Par défaut
    Un try dans le try ?

  7. #7
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Citation Envoyé par Mike888
    Un try dans le try ?
    Oui...
    imagine que tu ais une exception lors de l'écriture de l'objet, ton programme va passer directement dans le bloc catch sans libérer les ressources i.e sans fermer le flux .


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  8. #8
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Citation Envoyé par Mike888
    Ca marche !!!
    Je crois que ça vient du fait que null est la valeur par défaut, qui entraîne (lors de la déserialisation) la mise en place de la bordure par défaut du composant.

    Avec un objet précis (qui ne fait rien) pour servir de bordure, on n'a plus la valeur par défaut, et l'UI comprend que l'utilisateur a bien précisé qu'il voulait une bordure vide.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/08/2007, 21h42
  2. un petit probleme avec les champs de texte
    Par visualk dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 28/04/2007, 22h51
  3. [c#]probleme avec les menu toolStripItem dans une form mdi??
    Par must19 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/11/2006, 23h02
  4. Tout petit probleme avec les string
    Par bixi dans le forum Delphi
    Réponses: 4
    Dernier message: 06/06/2006, 09h46
  5. Petit probleme avec les css
    Par Seth77 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 12/02/2006, 18h23

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