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

AWT/Swing Java Discussion :

[SWING] Réalisation d'une grille


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut [SWING] Réalisation d'une grille
    Re Bonsoir,

    voilà comment je m'y prend pour afficher une grille de 81 cases (9 régions de 9 cases ) Mais à l'affichage je voudrais que cela s'afiche ainsi :

    [][][] [][][] [][][]
    [][][] [][][] [][][]
    [][][] [][][] [][][]
    (donc je voudrais afficher ses 9 blocs ainsi (sans espaces) .
    [][][] [][][] [][][]
    [][][] [][][] [][][]
    [][][] [][][] [][][]

    [][][] [][][] [][][]
    [][][] [][][] [][][]
    [][][] [][][] [][][]


    Voilà le code :

    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
     
    	 for (int i=0; i<9;i++)
     
    	 {
    		JPanel pan= new JPanel();   pan.setLayout(new GridLayout(3,3));
    		Border blueline = BorderFactory.createLineBorder(Color.blue,3);
    		pan.setBorder(blueline); 
     
     
     
     
    		for (int j=0;j<9;j++)
     
    		{
    			JButton b= new JButton();
    			b.setPreferredSize(new Dimension(haut/15,large/15));
     
    			pan.add(b);
     
     
    		}
     
    	   fen.getContentPane().add(pan);
     
     
    	 }
     
    	 fen.setVisible(true);
     
    	}
    L'homme est prédestiné à l'objet de ses propres choix .

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Points : 151
    Points
    151
    Par défaut
    Quel est exactement ton problème? Tu as des espaces entre les 9 régions et tu ne voudrais pas en avoir, c'est bien ça? Si c'est le cas, c'est probablement lié au layout du panel dans lequel sont placés ces 9 blocs (en l'occurence, si j'ai bien suivi, il s'agit du getContentPane()).

  3. #3
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    Non en fait c'est meme pas les espaces, je les ai mis pour qu'on comprenne ce que je veux dire par région , je voudrais en fait avoir une grille de 81 cases . J'essaie de faire le jeu Sudoku . La regle est qu'on ne peut avoir qu'une seul fois le meme chiffre par lignes , par colonnes et par régions . Les panels (contentenant mes cases) sont décalés et s'affiche n'importe comment . Je voudrais qu'ils s'affichent de façon comme shématisé plus haut . Il place les panels là où y'a de la paces ...

    Je dois surement lui dire où placer les panels mais comment lui dire ?

    Merci @ +
    L'homme est prédestiné à l'objet de ses propres choix .

  4. #4
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Bonjour, ca ne serait pas plus simple avec un JTable non?
    Pourquoi ca marche jamais?Vive le café!

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Points : 151
    Points
    151
    Par défaut
    Je pense que le problème se situe au niveau du layout du panel dans lequel sont placés les 9 régions... D'après ton code, tu les mets directement dans getContentPane(), est ce que tu as pensé à configurer le layout de celui ci? Je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getContentPane().setLayout(new GridLayout(3,3))
    pourrait aider....

  6. #6
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    Je pense que le problème se situe au niveau du layout du panel dans lequel sont placés les 9 régions... D'après ton code, tu les mets directement dans getContentPane(), est ce que tu as pensé à configurer le layout de celui ci? Je pense que
    Code:
    getContentPane().setLayout(new GridLayout(3,3))

    pourrait aider....
    Merci ca regle le probleme mais un autre probleme est survenue . La grille prend tout l'écran ... Pourtant j'ai réduit la taille des boutons .. Peut etre réduire la place que prend le panel si j'y arrive ...





    Bonjour, ca ne serait pas plus simple avec un JTable non?
    Ca n'est pas une mauvaise idée du tout , merci
    L'homme est prédestiné à l'objet de ses propres choix .

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Points : 151
    Points
    151
    Par défaut
    ca regle le probleme mais un autre probleme est survenue . La grille prend tout l'écran ...
    Effectivement, c'est le fonctionnement normal du GridLayout. Je pense en fait que tu devrais placer toute cette grille dans un autre JPanel, que tu pourras redimensionner comme tu le souhaites. Cependant, avant de te lance là dedans, je te conseille de lire le tutorial de Sun sur les Layouts (à moins que l'aies déjà fait). Ca te donnera une bonne idée des différents Layouts, de ce qu'ils peuvent faire et comment les utiliser.

  8. #8
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    Merci pour le tuyaux .

    Bonne soirée .
    L'homme est prédestiné à l'objet de ses propres choix .

  9. #9
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    Rebonsoir,

    Voilà où j'en suis avec ma grille , ca commence à ressembler à une grille mais cele ci prend tout l'écran bien que j'ai précisé que le panel avait une dimension égale à la moitié de la dimension de l'écran ...

    Voilà le code :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     
    import javax.swing.*;
    import javax.swing.border.Border;
     
    import java.awt.*;
     
    public class grille1 {
     
     
    	public static void main (String [] args)
     
    	{
    		JFrame j =new JFrame ("grille");
    		Toolkit tk =Toolkit.getDefaultToolkit();
     
    		Dimension dim=tk.getScreenSize();
    		// créer le panel dans lequel se trouvera les 9 autres panels de 9 boutons 
    		JPanel pan = new JPanel (new GridLayout (3,3));
     
    		// Je voudrais que le panel principal n'occupe que la moitié de l'écran .
    		pan.setSize(new Dimension(dim.height/2,dim.width/2));
     
    		Border blackline = BorderFactory.createLineBorder(Color.black,3); 
    		pan.setBorder(blackline);
     
     
    		//j.getContentPane().setBounds(600,200,0,0);
    		j.setSize(600,300);
     
    		for (int i=0;i<9;i++)
     
    		{
    			JPanel obj= new JPanel (new GridLayout(3,3));
    			obj.setBorder(blackline);
     
    			for (int k=0;k<9;k++)
     
    			{
    				JButton b= new JButton ();
    			    obj.setForeground(Color.blue);
    				obj.add(b);
    			}
     
    			pan.add(obj);
     
    		}
     
    	    j.getContentPane().add(pan);
    	    j.setVisible(true);
     
    	}
     
     
     
    }

    Merci du coup de main , bonne soirée
    L'homme est prédestiné à l'objet de ses propres choix .

Discussions similaires

  1. Réalisation d'une grille de sudoku en fortran
    Par hunty24 dans le forum Fortran
    Réponses: 2
    Dernier message: 08/01/2015, 11h38
  2. afficher une grille de sudoku Swing
    Par herbert8 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 03/10/2007, 00h42
  3. [SWING][Débutant] aide à la réalisation d'une page
    Par zolotaya dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/07/2007, 10h10
  4. [D7] réaliser une grille transparente modulable
    Par jcs2 dans le forum Delphi
    Réponses: 4
    Dernier message: 13/06/2007, 14h42
  5. [swing] Probleme lors du chargement d'une grille
    Par issou dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 29/03/2006, 14h38

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