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);
		}
	}