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 :
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