Bien le bonjour ! je suis tout nouveau sur ce forum, donc ayez pitié de préférence
Voilà mon problème, que j'essaye de comprendre depuis tout à l'heure :
Je veux faire un JPanel contenant une grille modulable d'autres JPanels (par modulable j'entends que ce nombre est paramétré à l'instanciation de la classe). Tous mes JPanels sont contenus dans une classe WormsGUI extends JFrame, et ceux-ci sont des classes héritées de AbstractView qui est elle-même héritée de JPanel.
Mon problème est que l'un des JPanels semble être... fixe : il ne s'adapte pas à son contenu, où que je le place dans le contentPane dans la JFrame.
Sa taille ne bouge pas, malgré que j'essaye de lui en imposer une (setSize, setMinimumSize et PreferedSize).
Pour comprendre ce que je veux dire avec tout ce charabia, voyez la capture d'écran que j'ai jointe (c'est le carré blanc). Ce foutu carré blanc refuse de bouger, quoi qu'il arrive. J'ai un essayé pas mal de trucs pendant près de 2/3 heures, donc là j'abandonne un peu d'essayer de trouver et je viens à vous en vous suppliant ^^
Voici le code de la JFrame (l'essentiel) :Celui de AbstractView :
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 import java.awt.BorderLayout; import java.awt.Dimension; import java.util.ArrayList; import javax.swing.*; import modele.World; public class WormsGUI extends JFrame { private World world; private JPanel contentPane = new JPanel(new BorderLayout()); public WormsGUI(World world) { super("Worms"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setMinimumSize(new Dimension(200, 200)); setSize(300, 300); this.world = world; ParametersView v1 = new ParametersView(this); GridView v2 = new GridView(this); contentPane.add(v1, BorderLayout.EAST); contentPane.add(v2, BorderLayout.WEST); setContentPane(contentPane); setVisible(true); } }Celui de la vue qui marche (à droite) :
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 package vues; import javax.swing.JPanel; /** * SuperConstructor for every view */ @SuppressWarnings("serial") public abstract class AbstractView extends JPanel { protected WormsGUI main; // BUILDERS ------------------------------------ public AbstractView(WormsGUI main) { super(); this.main = main; } // MODIFIERS ------------------------------------ public abstract void update(); public abstract int getWidth(); public abstract int getHeight(); public WormsGUI getMain() { return main; } public void setMain(WormsGUI main) { this.main = main; } }Et celle qui me les b***** depuis quelques heures :
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 public class ParametersView extends AbstractView implements ActionListener { private JButton go, goForever, stop; public ParametersView(WormsGUI main) { super(main); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); go = new JButton("Lancer un cycle"); go.addActionListener(this); add(go); goForever = new JButton("Lancer la simulation"); add(goForever); stop = new JButton("Arrêter"); add(stop); } }
Merci à vous d'avoir lu ! (et encore plus merci à celui qui arrivera à m'indiquer où est l'erreur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class GridView extends AbstractView { public GridView(WormsGUI main) { super(main); setLayout(new GridLayout(3, 3, 1, 1)); setBackground(Color.white); for (int i = 0; i < 5; i++) { JLabel p2 = new JLabel("Ca va ?"); add(p2); } } }
Partager