Bonjour,

Voila je cherche à mettre un JPanel rempli d'images dont je ne connais pas le nombre dans un JScrollPane.Le problème est que si je ne mets pas le setPreferredSize à une valeur super grande, les barres bugs et je ne vois rien Mais si je mets une valeur super grande (10 000 disons ) je vais avoir un JPanel énorme.

Pour construire mon JScrollPane :

JScrollPane jsp = new JScrollPane(vuePalette);
jsp.setPreferredSize(new Dimension(300,600));


Le JPanel que je veux afficher :
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
 
package vue;
 
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JPanel;
import modele.Palette;
import modele.Tuile;
 
public class VuePalette extends JPanel implements Observer {
 
	private Palette palette;
	private ArrayList<VueTuile> vueTuileTab;
 
	public VuePalette(){
		new VuePalette(null);
	}
	public VuePalette (Palette palette){
		super();
		this.palette = palette;
		vueTuileTab = new ArrayList<VueTuile>();
		VueTuile tuile = null;
		if (palette != null){
			for (Tuile n : palette.getTabTuiles()){
				tuile = new VueTuile((BufferedImage)n.getImage());
				vueTuileTab.add(tuile);
				this.add(tuile);
			}
		}
		this.setPreferredSize(new Dimension(200,10000));
	}
 
	@Override
	public void update(Observable arg0, Object arg1) {
		palette = (Palette)arg0;
		repaint();
	}
 
	@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
	}
}

Si quelqu'un à une idée pour que ma ScrollBar prenne en compte mon JPanel en entier,n'hésitez pas


Ps: Si je ne mets pas de setPreferredSize, toutes mes images seront alignées horizontalement sur 1 seule ligne.