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 :

Ajout d'un Panel, que faire pour l'afficher immédiatement


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Points : 909
    Points
    909
    Par défaut Ajout d'un Panel, que faire pour l'afficher immédiatement
    Bonjour,

    j'ai l'impression d'avoir eu ce problème des 100 aine de fois (j'éxagère ptet un peu ...)

    Enfin bref j'ajoute un JPanel sur un autre (en fait j'enleve tout et je remet un liste de composant updater) ... et malgré un repaint (voir plusieurs) je n'arrive pas a le faire s'afficher (sauf si gros repaint sur le Frame (resize ect ...))

    Bon une fois pour toute je veux connaitre la solution! lol

    un peu de code si ca peut aider :

    ma fonction qui enleve et remet tout et dont l'appel devrais updater mon JPanel

    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 void updateBAAreasView()
    	{
    		System.out.println("BOOOOOOUUHHHHAAAA");
    		this.removeAll();
    		this.add(_genePanel);
    		ArrayList baAreaList = _baparent.getParam().getBAAreaList();
    		for (int i = 0; i <baAreaList.size(); i++)
    		{
    			System.out.println("i :"+i);
    			this.add((BestAlignementArea)baAreaList.get(i));
    		}
     
    		_baparent.repaint();
    		this.repaint();
    	}
    comme vous pouvez le voir j'ai essaé le repaint sur le JPanel lui même, sur celui qui le contient aussi ...

    mon paintComponent et surchargé :
    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
     
    public void paintComponent(Graphics g)
    	{
    		super.paintComponent(g);
     
    		int pixDelta = (int)(_posPan.getDeltaPosition()*(this.getWidth()-10))+5;
    		drawPeriod(g, pixDelta);
    	}
     
    	private void drawPeriod(Graphics g, int pixDelta)
    	{
    		float nbPeriod = _posPan.getNbPeriod();
     
    		for (int j = 0; j<= nbPeriod; j++)
    		{
    			if (pixDelta+(int)((1/(float)(nbPeriod))*(this.getWidth()-10)*j ) <= this.getWidth()-5)
    				g.drawLine((int)((1/(float)(nbPeriod))*(this.getWidth()-10)*j  + pixDelta), 5, (int)((1/(float)(nbPeriod))*(this.getWidth()-10)*j  + pixDelta), this.getHeight()-5);
    			else
    				g.drawLine((int)((1/(float)(nbPeriod))*(this.getWidth()-10)*j ) - (this.getWidth() - 5 - pixDelta)+5, 5, (int)((1/(float)(nbPeriod))*(this.getWidth()-10)*j ) - (this.getWidth() - 5 - pixDelta)+5, this.getHeight()-5);
    		}
    	}
    Informaticienne le jour, créatrice de bijoux la nuit (https://www.facebook.com/La-Fée-Chro...07539656306271) et maman à plein temps !

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Il y a aussi revalidate, qui aide. Si revalidate et/ou repaint ne fonctionnent pas, il faut chercher ailleurs.

    Une piste sympa aussi, et qui te libère de ces soucis, et d'utiliser un CardLayout : pendant qu'une carte est affichée, tu en crées une autre, dans cette autre tu places tes nouveaux composants, tu commutes l'affichage sur cette nouvelle carte, tu effaces l'ancienne... Facile, non ?
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    tu peux faire comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    monJFrame.remove(monJPanelActuel);
    monJPanelActuel = new monNouveauJPanel();
    monJPanelActuel.getContentPane().add(monJPanelActuel);
    monJFrame.setVisible(true);
    sachant que:

    -monJFrame c'est le JFrame que tu utilises.
    -monJPanelActuel est le JPanel que tu veaux remplacer.
    -monNouveauJPanel est une classe qui herite de JPanel qui la rend elle aussi JPanel

    j'espere que ca va t'aide ne seraisse qu'un minimum, good luck

  4. #4
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Points : 909
    Points
    909
    Par défaut
    Merci je vais esayer de voir .. mais en faite je ne remplace pas UnJPanel par un autre mais j'en aujoute un (c un grosse pile de JPanel transparent que je gère) .

    Mais je vais essayer de m'inspirer de vos remarque ^^
    Informaticienne le jour, créatrice de bijoux la nuit (https://www.facebook.com/La-Fée-Chro...07539656306271) et maman à plein temps !

Discussions similaires

  1. Réponses: 12
    Dernier message: 14/10/2010, 15h11
  2. Que faire pour être économe et écologiste
    Par bakaneko dans le forum Écologie
    Réponses: 1
    Dernier message: 07/03/2007, 08h54
  3. Réponses: 4
    Dernier message: 01/12/2006, 14h41
  4. [conseils]Que faire pour m'entraîner?
    Par nicolaskarp dans le forum Général Java
    Réponses: 8
    Dernier message: 20/07/2005, 23h36
  5. [DirectDraw] Que faire pour optimiser le rendu ???
    Par mat.M dans le forum DirectX
    Réponses: 8
    Dernier message: 12/12/2003, 18h02

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