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 rienMais 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.
Partager