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 :

Dessiner en java


Sujet :

Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut Dessiner en java
    Bonjour,

    Je suis députante et je souhaite dessiner un grand carré ou il y'a des petites cases (visible ou pas) 32 sur 32 , chaque case on peut la remplir (colorié) en utilisant sa position . J'aimerai bien avoir un coup de main

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    On parle des deux principales façons de faire (utiliser des composants SWING pour constituer une grille de case, ou dessiner un dammier) dans cette discussion : http://www.developpez.net/forums/d15...re-grille-jeu/
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Salut,

    Enfait j'aurai bien aimé avoir un bout de code comme coup de pouce je serais reconnaissante si c'est possible parceque là je suis vraiment débutante

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si tu lis la discussion, tu y trouveras du code...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Il y a également cette discussion : http://www.developpez.net/forums/d15...r/plateau-jeu/

    C'est le dessin d'un plateau de go (alors que l'exemple du premier fil que je t'ai donné utilise des composants SWING), ce n'est pas exactement un dammier, mais l'idée y est, et tu trouveras tout ce qu'il faut comme exemple de code.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Enfaite merci bcp pour ton aide du coup j'ai créer une grille mais là du coup elle crée des carreaux dans toute la fenetre moi je veux que 32 sur 32 carreaux, puis ma 2eme questions est par exemple pouvoir acceder à ses cases
    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 void paintComponent(Graphics g)
          { 
             super.paintComponent(g); 
             int larg = getWidth(); 
             int haut = getHeight();
     
     
             int dim = 20; //dimension d'une case de la grille
     
             // La grille:
             for(int i = 0; i < larg; i +=dim)
             {
                g.drawLine(i,0,i, haut); // Les lignes verticales de la grille
                g.drawLine(0,i,larg, i); // Les lignes horizontales de la grille
                System.out.println(i);
             }
     
          }

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Au lieu de faire une boucle sur larg (largeur de la fenêtre) de dim en dim, soit tu fais une boucle de 0 à 31 for(int i=0; i<32; i++) soit tu fais une boucle sur larg=32*dim.

    Qu'entends-tu par accèder ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Non enfaite ça marche pas quand je fais votre condition voilà tout mon code. Enfaite moi ça c'est qu'un test aprés vu que je fais du traitement d'image je dois par exemple être capable si la valeur est à 255 il met du noir dans une case précise... J'apprécierai vraiment un coup de main
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import java.awt.*; 
       import javax.swing.*; 
       import java.util.*;
     
     
       public class DessinDansPanel extends JPanel 
       {
     
          public static void Fenetre()
          { 
             try
             {
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
             }
     
                catch (UnsupportedLookAndFeelException e)
                {
                   System.out.println(e);
                }
     
                catch (ClassNotFoundException e)
                {
                   System.out.println(e);
                }
     
                catch (InstantiationException e)
                {
                   System.out.println(e);
                }
     
                catch (IllegalAccessException e)
                {
                   System.out.println(e);
                } 
     
     
             JFrame fenetre = new JFrame(); 
             fenetre.setSize(400, 400); 
             fenetre.setTitle(" les cases d'une grille."); 
             JPanel panneau = new DessinDansPanel(); 
             panneau.setBackground(Color.green); 
             fenetre.add(panneau); 
             fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
             fenetre.setVisible(true); 
          } 
     
          @Override 
          public void paintComponent(Graphics g)
          { 
             super.paintComponent(g); 
             int larg = getWidth(); 
             int haut = getHeight();
     
     
             int dim = 20; //dimension d'une case de la grille
     
             // La grille:
             for(int i = 0; i < larg; i +=dim)
             {
                g.drawLine(i,0,i, haut); // Les lignes verticales de la grille
                g.drawLine(0,i,larg, i); // Les lignes horizontales de la grille
                System.out.println(i);
             }
     
          }
     
          public static void main (String [] arg)
          { 
             Fenetre();
          }
       }

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Si si ça marche, avec votre methode. Maintenant pouvez vous m'aider par exeple pouvoir integrer une valeur et deux positions (genre 1 cases precises) et pouvoir modifier cette case avec cette valeur

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Bonjour j'ai vu ce que vous m'avez conseillé et j'ai fais ce code qui dessine dans une grille, enfaite ce qui me manque c'est par exemple il prend 2 images de départ et il lit pour chaque pixel sa position et il remplie cette derniere par rapport aux valeurs de ses pixels des 2 images et j'en ai aucune idée pouvez vous m'aider ?

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    package STAGE;
    import java.awt.*; 
    import java.awt.image.BufferedImage;
    import java.awt.image.Raster;
     
    import javax.swing.*; 
     
    import java.util.*;
     
     
       public class Histogrammebilineaire extends JPanel 
       { 
     
     
     
          public static void Fenetre()
          { 
     
             JFrame fenetre = new JFrame(); 
             fenetre.setSize(273, 295); 
             fenetre.setTitle("Histogramme Bilinéaire"); 
             JPanel panneau = new Histogrammebilineaire(); 
             panneau.setBackground(Color.WHITE); 
             fenetre.add(panneau); 
             fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
             fenetre.setVisible(true); 
          } 
     
          @Override 
          public void paintComponent(Graphics g)
          { 
             super.paintComponent(g); 
             int larg = getWidth(); 
             int haut = getHeight();
     
     
             int dim = 8; //dimension d'une case de la grille
     
             // La grille:
             for(int i = 0; i < dim*33; i +=dim)
             {
                g.drawLine(i,0,i, haut); // Les lignes verticales de la grille
                g.drawLine(0,i,larg, i); // Les lignes horizontales de la grille
               // System.out.println(i);
             }
     
             for(int j = 0; j < dim*32; j +=dim)
             {	
             // Remplir les cases:
                for(int i = 0; i < dim*32; i +=dim)
                {
                   g.setColor(Color.blue);   // couleur de remplissage
                   g.fillRect(8, 248, 8, 8); // remplissage (fill)
                   g.setColor(Color.green);  // couleur du panel
                }
             }
     
     
          }
     
          public static void main (String [] arg)
          { 
             Fenetre();
          }
       }

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu peux récupérer la couleur d'un pixel d'une image en la chargeant en BufferedImage (ImageIO.read()), avec la méthode getRGB(int,int) de BufferedImage.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Bonjour,J'ai essayé ce que vous m'avez dis mais enfaite comme je dois travailler avec 2 images et prendre que les 5 premiers bits de chacune et les fusionner pour former un pixel à mettre dans le meme endroit j'arrive pas j'apprecierai un coup de main
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    package STAGE;
    import java.awt.*; 
    import java.awt.image.BufferedImage;
    import java.awt.image.Raster;
     
    import java.io.File;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.*; 
     
    import java.util.*;
     
     
       public class Histogrammebilineaire extends JPanel 
       { 
     
       BufferedImage monImage;
       BufferedImage monImage2;
    	   //public Histogrammebilineaire(){
     
    	/*	   try {
    			   File input = new File("d:/bordd.JPG");
    			   File input2 = new File("d:/bor.JPG");
    			   monImage = ImageIO.read(input);
    			   monImage2 = ImageIO.read(input);
     
     
    			   int max=0;
    			   int nbpts=0;
    			   int M=1;
    	   for (int i = 0; i < monImage.getHeight() ; i++) {
    			  for (int j = 0 ; j < monImage.getWidth() ; j++) {
     
    			     for (int k = 0; k < monImage2.getHeight(); k++) {
    			      for (int l = 0; l <monImage2.getWidth(); l++) {
    			       int pixel = monImage.getRGB(j + k, i + l);
    			       int gray = (pixel >> 16) & 0xff;
     
    			   if (max<M){
    				   max=M;
    				   nbpts++;
    			   }
     
    			      }}}}	     
      
    		   } catch (Exception e) {
    	   e.printStackTrace();
    	  }
    	 } */
     
          public static void Fenetre()
          { 
     
             JFrame fenetre = new JFrame(); 
             fenetre.setSize(273, 295); 
             fenetre.setTitle("Histogramme Bilinéaire"); 
             JPanel panneau = new Histogrammebilineaire(); 
             panneau.setBackground(Color.WHITE); 
             fenetre.add(panneau); 
             fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
             fenetre.setVisible(true); 
          } 
     
          @Override 
          public void paintComponent(Graphics g)
          { 
        	  File input = new File("d:/courbure.jpg");
        	  File input2 = new File("d:/test.bmp");
     
     
        	  try {
    			monImage = ImageIO.read(input);
    			 monImage2 = ImageIO.read(input2);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
             super.paintComponent(g); 
             int larg = getWidth(); 
             int haut = getHeight();
     
     
             int dim = 8; //dimension d'une case de la grille
     
             // La grille:
             for(int i = 0; i < dim*33; i +=dim)
             {
                g.drawLine(i,0,i, haut); // Les lignes verticales de la grille
                g.drawLine(0,i,larg, i); // Les lignes horizontales de la grille
               // System.out.println(i);
             }
     
             for(int j = 0; j < dim*32; j +=dim)
             {	
     
             // Remplir les cases:
                for(int i = 0; i < dim*32; i +=dim)
                {
                	 for ( i = 0; i < monImage.getHeight() ; i++) {
           			  for ( j = 0 ; j < monImage.getWidth() ; j++) {
     
           				int pixel = monImage.getRGB(j , i );
           				int gray = (pixel >> 32) ;
     
           				for (i = 0; i < monImage2.getHeight(); i++) {
           			    for (j = 0; j <monImage2.getWidth(); j++) {
     
           			    	int pixel2= monImage2.getRGB(j, i);
           				     int gray2 = (pixel2 >> 32) ;
     
                   g.setColor(Color.blue);   // couleur de remplissage
                   g.fillRect(gray, gray2, 8, 8); // remplissage (fill)
                   g.setColor(Color.green);  // couleur du panel
                }
             } }
     
                	 }}}
     
     
          }
     
          public static void main (String [] arg)
          { 
             Fenetre();
          }
       }

Discussions similaires

  1. dessin réalisable? Java 2D ou autre
    Par TabrisLeFol dans le forum Graphisme
    Réponses: 19
    Dernier message: 19/04/2007, 12h00
  2. Dessiner en java avec plusieurs classes
    Par keub51 dans le forum 2D
    Réponses: 12
    Dernier message: 04/03/2007, 21h46
  3. dessiner en java
    Par ivanoe25 dans le forum Graphisme
    Réponses: 7
    Dernier message: 17/08/2006, 18h06
  4. dessin en java
    Par menuge dans le forum Graphisme
    Réponses: 4
    Dernier message: 01/06/2006, 18h36
  5. Dessiner en Java
    Par ankou82 dans le forum 2D
    Réponses: 15
    Dernier message: 07/04/2006, 10h28

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