Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Grille dans un Jpanel [ Multimédia / Java2D ] (ABF)

mercredi 14 mai 2008 à 14:46:45 | Grille dans un Jpanel

ABF

>Slt, > >J'ai un soucis en Java avec Netbeans, > >Je veux réaliser un grille sur un Jpanel avec des images MAIS c'est pas concluant !!! > >Ci-dessous mon code : > > >public static void main(String args[]) { > java.awt.EventQueue.invokeLater(new Runnable() { > public void run() { > new Viewer().setVisible(true); > > genGrille gen = new genGrille; //marche pas !!!! > gen.generer(); > } > }); > } > > > class genGrille extends JPanel{ > > private JLabel[] tbl = new JLabel[450]; > private JPanel panel; > > // Constructeur de la classe Morpion > void generer() > { > // création Jpanel > Container cont = getContentPane(); > panel = new JPanel(); > cont.add(panel); > > > // Le gestionnaire de mise en forme du Panel panel est redéfini > // en grille de 15 lignes, 30 colonnes avec 0 pixels entre chaques > panel.setLayout(new GridLayout(15,30,0,0)); > > > // Création des images 450 (15*30) et ajout au Panel panel > for (int i=1 ; i<450 ; i++) > { > JButton btn = new JButton(""); > btn.setText(""); > btn.setBounds(30,30,30,30); // je veux du 30x30 pixels et le positionner en 0,0 > //btn.setMaximumSize(30,30); //impossible > //btn.setIcon("vide.bmp"); //impossible > panel.add(btn); > } > > > } > } > > >Merci de votre aide > > >++

mercredi 14 mai 2008 à 15:57:59 | Re : Grille dans un Jpanel

mouzart

slt

Post un code mieu formate si tu veux qu'on t'aide.

rgds

mercredi 14 mai 2008 à 16:15:11 | Re : Grille dans un Jpanel

ABF

Heu je t'envoie ca en MP car dans le Forum, le code se dés-indente

mercredi 14 mai 2008 à 21:23:44 | Re : Grille dans un Jpanel

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

le post initial indenté :

Slt,

J'ai un soucis en Java avec Netbeans,

Je veux réaliser un grille sur un Jpanel avec des images MAIS c'est pas concluant !!!

Ci-dessous mon code :


public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Viewer().setVisible(true);
                
                genGrille gen = new genGrille; //marche pas !!!!
                gen.generer();
            }
        });
    }
    
    
    class genGrille extends JPanel{

private JLabel[] tbl = new JLabel[450];
        private JPanel panel;
        
// Constructeur de la classe Morpion
void generer()
{
             // création Jpanel
             Container cont = getContentPane();
             panel = new JPanel();
             cont.add(panel);
            
            
             // Le gestionnaire de mise en forme du Panel panel est redéfini
     // en grille de 15 lignes, 30 colonnes avec 0 pixels entre chaques
     panel.setLayout(new GridLayout(15,30,0,0));
            

            // Création des images 450 (15*30) et ajout au Panel panel
            for (int  i=1 ; i<450 ; i++)
            {
                JButton btn = new JButton("");
                btn.setText("");
                btn.setBounds(30,30,30,30);  // je veux du 30x30 pixels et le positionner en 0,0
                //btn.setMaximumSize(30,30); //impossible
                //btn.setIcon("vide.bmp");   //impossible
                panel.add(btn);
            }
            

        }
    }





------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

mercredi 14 mai 2008 à 21:36:54 | Re : Grille dans un Jpanel

ABF

Merci, comment tu as fait pour l'indentation ? POur mieux comprendre, j'ai mis tout le projet dans http://cbprogs.free.fr/GestionGare.zip Je le mettrais sur JavaFr plus tard quand il sera finit, ca aidera les debutants comme moi ;) Merci de m'aider

mercredi 14 mai 2008 à 22:19:08 | Re : Grille dans un Jpanel

mouzart

 				 						Voila ce qui te manque a toi de choisir le bon x/y et les bon param des constraints
panel.setLayout(new GridLayout(15,30,0,0));
            

            // Création des images 450 (15*30) et ajout au Panel panel
            for (int  i=1 ; i<450 ; i++)
            {
GridBagConstraints contraintes= new GridBagConstraints();

contraintes.gridx = x;//la position par rapport a l axe des absciss
contraintes.gridy = y;//la position vertical
contraintes.gridwidth = largeur;
contraintes.gridheight = hauteur;
contraintes.fill = typeElargissement;
contraintes.anchor = typePosition;
contraintes.ipadx = etalementHorizontal;
contraintes.ipady = etalementVertical;

                JButton btn = new JButton("");
                btn.setText("");
                btn.setBounds(30,30,30,30);  // je veux du 30x30 pixels et le positionner en 0,0
                //btn.setMaximumSize(30,30); //impossible
                //btn.setIcon("vide.bmp");   //impossible
panel.getLayout()).setConstraints(sousComposant,contraintes);
                panel.add(btn);
            }

mercredi 14 mai 2008 à 22:54:27 | Re : Grille dans un Jpanel

ABF

Merci MAIS

genGrille gen = new genGrille();
gen.generer();

Plante maintenant

==================================
MA CLASSE COMPLETE :




package gestiongare;

import java.util.*;         //lecture + timer
import java.util.Timer;     //timer
import java.io.*;           //fichier
import java.lang.String;    //split

import java.awt.*;
import javax.swing.*;



/**
*
* @author  Brice
*/
public class Viewer extends javax.swing.JFrame {
    
    static Timer t;
    static String [][] tblMap; //tbl de la map 2 dimensions
    

    /** Creates new form Viewer */
    public Viewer() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        btnEnd = new javax.swing.JButton();
        jPanel = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Viewer");

        btnEnd.setText("QUITTER");
        btnEnd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEndActionPerformed(evt);
            }
        });

        jPanel.setBackground(new java.awt.Color(204, 204, 204));

        javax.swing.GroupLayout jPanelLayout = new javax.swing.GroupLayout(jPanel);
        jPanel.setLayout(jPanelLayout);
        jPanelLayout.setHorizontalGroup(
            jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 557, Short.MAX_VALUE)
        );
        jPanelLayout.setVerticalGroup(
            jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 296, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(876, Short.MAX_VALUE)
                .addComponent(btnEnd)
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(406, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 172, Short.MAX_VALUE)
                .addComponent(btnEnd)
                .addContainerGap())
        );

        getAccessibleContext().setAccessibleParent(jPanel);

        pack();
    }// </editor-fold>                        

private void btnEndActionPerformed(java.awt.event.ActionEvent evt) {                                      
    new Splash().setVisible(true);
    dispose();
}                                      

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Viewer().setVisible(true);
                
                //demande une map a charger
                    String temp="";
                    try
                    {
                        DataInputStream fichier;
                        fichier=new DataInputStream(new BufferedInputStream(new FileInputStream("chemin_du_fichier" )));
                        temp=fichier.readUTF();
                          
                        //fichier ouvert
                        //genere la grille
                        genGrille gen = new genGrille();
                        gen.generer();
                        
                        loadMap(temp);
                          
                        fichier.close();
                        
                        
                        //lance le jeu
                        t = new Timer();
                        t.schedule(new Jeu(), 0, 200);
                        
                    }
                    catch(Exception e)
                    {System.err.println("Message_erreur : " + e.getMessage() );
                    }
            }
        });
    }
    

    /*static class genGrille extends JPanel{
        private JLabel[] tbl = new JLabel[450];

        void generer()
        {
           // Auncun espacement entre les cases de la grille
           setLayout(new GridLayout(15,30,0,0));
            
           // Création et Ajout des images 450
           for (int  i=1 ; i<450 ; i++) {
                GridBagConstraints contraintes= new GridBagConstraints();

                contraintes.gridx = x;//la position par rapport a l axe des absciss
                contraintes.gridy = y;//la position vertical
                contraintes.gridwidth = largeur;
                contraintes.gridheight = hauteur;
                contraintes.fill = typeElargissement;
                contraintes.anchor = typePosition;
                contraintes.ipadx = etalementHorizontal;
                contraintes.ipady = etalementVertical;
              
              
              
                JLabel btn = new JLabel();
                btn.setText("");
                btn.setPreferredSize(new Dimension(30, 30));
                btn.setIcon(new javax.swing.ImageIcon(".\\img\\vide.jpg"));
                add(btn);
                btn.setVisible(true);
           }
        }
    }*/
    
    // OU BIEN
    
    class genGrille extends JPanel{

private JLabel[] tbl = new JLabel[450];
        private JPanel panel;
        
void generer()
{
             // création Jpanel
             Container cont = getContentPane();
             panel = new JPanel();
             cont.add(panel);
            
            
             // Le gestionnaire de mise en forme du Panel panel est redéfini
     // en grille de 15 lignes, 30 colonnes avec 0 pixels entre chaques
     panel.setLayout(new GridLayout(15,30,0,0));
            

            // Création des images 450 (15*30) et ajout au Panel panel
            for (int  i=1 ; i<450 ; i++)
            {
                
                GridBagConstraints contraintes= new GridBagConstraints();

     contraintes.gridx = 30*i;//la position par rapport a l axe des absciss
     contraintes.gridy = 15*i;//la position vertical
     contraintes.gridwidth = 900;
     contraintes.gridheight = 450;
     contraintes.fill = 1;//typeElargissement      |
     contraintes.anchor = 1;//typePosition         | PAS COMPRIS
     contraintes.ipadx = 1;//etalementHorizontal   |
     contraintes.ipady = 1;//etalementVertical     |
                
                JLabel btn = new JLabel();
                btn.setText("");
                btn.setPreferredSize(new Dimension(30, 30));
                btn.setIcon(new javax.swing.ImageIcon(".\\img\\vide.jpg"));
                add(btn);
                btn.setVisible(true);
                panel.add(btn);
            }
            

        }
    }
    
    
    
    
    // CHARGER LE FICHIER
    // PARSE CHAQUE LIGNE
    // MET EN FORME LE TABLEAU de la MAP
    static void loadMap(String fic) throws FileNotFoundException{
        
        int ligne;      //ligne du tbl de la map
        int colonne;    //colonne du tbl de la map

        String filePath = fic;
        Scanner scanner=new Scanner(new File(filePath));  // ????
        
        // On boucle sur chaque champ detecté
        ligne = 0;
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            
            //ajout tableau
            String[] tblTmp = line.split("|",10);
            
            colonne = 0;
            for (int  i=0 ; i<tblTmp.length ; i++)
            {tblMap[ligne][colonne] = tblTmp[i];
             colonne = colonne +1;
            }
            
        ligne = ligne + 1; // on passe à la ligne suivante
        }

        scanner.close();
    }
    

    
    static class Jeu extends TimerTask {
        
        private int xTrain; // horizontale
        private int yTrain; // verticale
        
        private Icon imgTmp; //image temporaire sur laquelle on va aller
        
        // on actionne le train
        public void run(){
            
            
            // on regarde sur chacun des 4 case a cote
            if(xTrain>0){                           // si on est pas a gauche
                if (yTrain>0 && yTrain<30){         // si on est pas en bordure Haut Bas
                    if (tblMap[xTrain][yTrain] != ""){
                        
                    }
                }else{
                    
                }
            }

        }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    // Variables declaration - do not modify                    
    private javax.swing.JButton btnEnd;
    private javax.swing.JPanel jPanel;
    // End of variables declaration                  

}







mercredi 14 mai 2008 à 23:00:38 | Re : Grille dans un Jpanel

ABF

Je pense qu'avec la source (projet) sur le site c'est plus clair et avec les couleur de l'IDE



Cette discussion est classé dans : grille, void, jpanel, panel, btn


Répondre à ce message

Sujets en rapport avec ce message

Scroll [ par MELISA ] Bonjour,Mon pb est le suivant:- je veux inserer un gif dans un JPanel, lui-même contenu dans un autre JPanel (je suis obligée d'utiliser un Panel au l Changer dynamiquement un JPanel par un autre [ par Angenoir ] Salut.J'aimerais concevoir une application graphique sympa mais je me heurte à quelques problèmes, mes connaissances en Java étant assez limitées Voil deplacer glisser [ par lafoune2 ] voila j'utilise ce morceau de code pour deplacer un jpanel sur un autre jpanel : void this_mouseDragged(MouseEvent e) { this.X += e.getX() - temp getGraphics + JPanel [ par CHKDSK2K ] Bonjour voilà mon code import javax.swing.*;import java.awt.Graphics;public class Dessin10{ public static void main (String [] args) { JFrame Fra pb: Jpanel transparent... [ par tlehoucq ] Voila g un pti pb, J' ai un panel principal qui contient plusieurs autres panels. J'aimerais que ces panels "fils" restent transparents jusqu'àce que problème avec JPanel et LayoutManager AU SECOURS [ par seb78 ] Bonjour,J'ai un JPanel properties dans lequel j'insère deux JPanel property l'un en dessous de l'autre._________| ______ || | | || |__1 _| || ajouter un jpanel [ par ptit pimousse ] Salut tout le monde voilà mon p'tit problème: j'ai deux classes la principale est Ecran extends JFrame avec un panel vide (pour l'instant), il s'appel Orientation dans un JPanel ou autre... [ par Zart ] En fait je voulais savoir comment on peut changer l'orientation d'un panel...J'ai déjà essayè avec la méthode setCompenentOrientation mais marche pas. Pb de raffraichissement dans 2 panel differents [ par Spawnrider ] Bonjour, je dispose d'une JFrame principal contenant un JPanel Terrain (GridLayout) contenant 150 JPanel Surface representant des carrés de surface. C Ajout d'un panel d'une classe differente [ par jbebert ] salutje développe une applet dans laquelle j'ai différents panels. Dans l'un d'entre eux  (jPanel_Stat1), je souhaite ajouter un panel (stat1) codée d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.