IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Coupure d'un extends JPanel


Sujet :

Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut Coupure d'un extends JPanel
    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) :
    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 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
    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;
    	}
     
    }
    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
    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);
     
    	}
    }
    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
    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);
    		}
    	}
    }
    Merci à vous d'avoir lu ! (et encore plus merci à celui qui arrivera à m'indiquer où est l'erreur).
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/12/2011, 23h44
  2. [Swing]Affichage classe extends JPanel
    Par Quentin D dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 03/08/2007, 12h58
  3. pb avec une classe extends JPanel
    Par thecancre dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 11/05/2006, 18h45
  4. Problème lors du EXTEND d'un tableau
    Par banana31 dans le forum Oracle
    Réponses: 14
    Dernier message: 10/02/2004, 10h58
  5. JPanel et Border
    Par titoine dans le forum Débuter
    Réponses: 3
    Dernier message: 22/04/2003, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo