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 :

probleme lors du rafraichissement d'un JTabbedPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut probleme lors du rafraichissement d'un JTabbedPane
    Hello

    voila, j'ai ce petit bout de code qui gere un JTabbedPane :

    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
     
    public class FenetrePrincipal extends JFrame implements Observer{
     
    	private JTabbedPane tabbedPane;
     
    ......
     
    	private void createOnglet(Vector<JPanel> listePanel){
    		tabbedPane = new JTabbedPane();
    		for(JPanel panel : listePanel){
    			tabbedPane.addTab("",panel);
    		}
    		this.getContentPane().add(BorderLayout.CENTER, tabbedPane);
    		this.setContentPane(this.getContentPane());
    	}
    }
    Donc quand je fais apelle une premiere fois à createOnglet, je n'ai aucun souci, mais si je le rappelle une deuxiemme fois, j'ai mon premier tabbedPane en sur-impression sur le second avec des comportement assez étrange.

    Quelqu'un à une idées de ce que ça pourrait être?
    Merci

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.getContentPane().add(BorderLayout.CENTER, tabbedPane);
    this.setContentPane(this.getContentPane());
    Ta première ligne est inutile car la 2e change le contentpane...

    De plus, sur un JPanel (ton ContentPane), le add se fait comme ceci: add(tabbedPane,BorderLayout.CENTER)

    De plus, pourquoi tu recrées un nouveau JTabbedPane (au lieu de vider l'ancien et mettre tes nouveaux onglets)?

    Sinon, au passage (mon message typique quand je vois écrit Vector dans un code lol), Vector date de l'ancienne API de Collections, utilise List<JPanel> comme type apparent et ArrayList<JPanel> en type réel

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    Citation Envoyé par ®om
    Ta première ligne est inutile car la 2e change le contentpane...

    De plus, sur un JPanel (ton ContentPane), le add se fait comme ceci: add(tabbedPane,BorderLayout.CENTER)
    Mais si je l'enleve, plus rien ne s'affiche. Par contre, pour l'inversion dans le add(), ça fonctionnait, donc je n'y est pas porté attention (et mon erreur ne venai pas de la) mais merci.

    Citation Envoyé par ®om
    De plus, pourquoi tu recrées un nouveau JTabbedPane (au lieu de vider l'ancien et mettre tes nouveaux onglets)?
    Heu... joker?
    Plus serieusement, je pensais qu'en le recréant, je le vidais. En effet, en le créant plus haut et avec tabbedPane.removeAll() ça fonctionne sans souci.

    Citation Envoyé par ®om
    Sinon, au passage (mon message typique quand je vois écrit Vector dans un code lol), Vector date de l'ancienne API de Collections, utilise List<JPanel> comme type apparent et ArrayList<JPanel> en type réel
    Ben... parce que j'ai dans mon affichage une JList qui prend en arguments un Vector, donc j'ai mis toutes mes listes en Vector
    Et pourtant je sais que c'est pas le meilleur à utiliser.

    Par contre, qu'entends tu par "type apparent"? C'est un autre terme pour designer interface?

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par blaise_laporte
    Ben... parce que j'ai dans mon affichage une JList qui prend en arguments un Vector, donc j'ai mis toutes mes listes en Vector
    Et pourtant je sais que c'est pas le meilleur à utiliser.
    Pour une liste, il vaut mieux utiliser un ListModel, et non l'implantation "prédéfinie" à base de Vecotr.
    En plus avec un ListModel, tu as beaucoup plus de souplesse, surtout pour ajouter ou supprimer des éléments dans ta liste...

    Citation Envoyé par blaise_laporte
    Par contre, qu'entends tu par "type apparent"? C'est un autre terme pour designer interface?
    Le type apparent c'est le type que tu utilises pour manipuler ta variable.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<String> list = new ArrayList<String>();
    le type apparent est List<String>.

    Mais ça n'est pas forcément une interface, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Number n = new Integer(5);
    le type réel est Integer et le type apparent est Number.

    Le type apparent de o est Object et son type réel est Integer.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    Merci pour toutes ces reponses.


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

Discussions similaires

  1. Probleme lors d'un rafraichissement d'un JTree
    Par tupac25 dans le forum Composants
    Réponses: 7
    Dernier message: 30/04/2010, 13h52
  2. Réponses: 13
    Dernier message: 10/05/2004, 16h49
  3. [MYSQL] Probleme lors de la compilation
    Par Nasky dans le forum Autres éditeurs
    Réponses: 10
    Dernier message: 24/02/2004, 17h04
  4. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 00h15
  5. problem lors de l'ecriture d'un fichier
    Par gemai dans le forum C
    Réponses: 20
    Dernier message: 29/08/2003, 15h01

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