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

avec Java Discussion :

Génération Aléatoire V2


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut Génération Aléatoire V2
    Voici mon code :
    classe Main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    public class Main {
     
    	public static void main(String[] args) {
    		Fenetre fen = new Fenetre();
     
     
    	}
     
    }
    Classe Fenetre
    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
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class Fenetre extends JFrame {
     
    	public Fenetre() {
    		this.setTitle("Deeper Aquatic 0.1");
    		this.setSize(500, 500);
    		this.setLocationRelativeTo(null);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		this.setContentPane(new Panneau());
    		this.setVisible(true);
     
    	}
     
    }
    Ma classe Panneau
    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
     
    import java.awt.Graphics;
    import java.awt.Image;
    import java.io.File;
    import java.io.IOException;
    import java.util.Random;
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
     
    public class Panneau extends JPanel {
    	public void paintComponent(Graphics g ) {
    		try {
    			Image image1 = ImageIO.read(new File("bleu.jpg"));
    			Image image2 = ImageIO.read(new File("rouge.jpg"));
    			Image image3 = ImageIO.read(new File("noir.jpg"));
    			g.drawImage(image1, 0, 0, this);
    			g.drawImage(image2, 0, 0, this);
    			g.drawImage(image3, 0, 0, this);
    		}catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	public String getRandom(String[] array) {
    		String [] array1 = {"image1", "image2", "image3"};
    		int rnd = new Random().nextInt(array1.length);
    		return array1[rnd];
    	}
     
    }
    et ça m'affiche que la couleur noir c'est normale ?

  2. #2
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut
    Faut il faire plusieur bloc try catch ?

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Hello,

    Citation Envoyé par BabaProg Voir le message
    et ça m'affiche que la couleur noir c'est normale ?
    Ben, tu les affiches toutes au même endroit, donc l'une par-dessus l'autre, et tu termines par la noire. Donc oui, c'est normal.

    Citation Envoyé par BabaProg Voir le message
    Faut il faire plusieur bloc try catch ?
    A priori non. Ce serait utile si le fait que l'un plante ne devrait pas planter les autres. Mais, ce n'est pas normal de ne pas pouvoir lire un fichier, donc si l'un plante il vaut mieux que ça plante tout le programme.

    Au passage, il vaudrait mieux charger les fichiers image avant de commencer à construire les fenêtres. Certainement pas au moment de les dessiner.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut
    Hello,

    Yes c'est normal que le noir soit dessus, car comme dit thelvin, tu les mets au même endroit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(image1, 0, 0, this);
    pour voir que tout s'affiche derrière tu peux faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    g.drawImage(image1, 0, 0, this);
    g.drawImage(image2, 10, 0, this);
    g.drawImage(image3, 20, 0, this);
    Par contre, petit question, n'as tu pas oublié d'utiliser ta méthode getRandom()?

    Jérémy

  5. #5
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut
    Non je n ai pas oublié d utiliser la méthode getRandom();Je l marqué dans le code que tu as pus le voir en tout cas éclipse me dit qu'il y a aucun problème.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Oui oui... Il y a pas d'erreur de validité du langage...
    C'est juste qu'on peut se demander pourquoi cette méthode est là si personne ne s'en sert.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut
    Donc j'ai changer ma ligne g.drawImage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    g.drawImage(image1, 0, 0, this);
    g.drawImage(image2, 10, 0, this);
    g.drawImage(image3, 20, 0, this);
    donc ça marche mais j'ia l'impression que la méthode getRandom() ne marche pas savez pourquoi ?

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 105
    Par défaut
    La méthode getRandom() ne semble pas avoir de problèmes.

    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
    import java.util.Random;
     
    public class Snippet {
     
    	public static void main(String args[])
    	{
    		System.err.println(getRandom(null));
    		System.err.println(getRandom(null));
    		System.err.println(getRandom(null));
    		System.err.println(getRandom(null));
    		System.err.println(getRandom(null));
    		System.err.println(getRandom(null));
    	}
     
    	public static String getRandom(String[] array) {
    			String [] array1 = {"image1", "image2", "image3"};
    			int rnd = new Random().nextInt(array1.length);
    			return array1[rnd];
    		}
     
    }
    le code ci dessus retourne bien le nom des images au hasard.

    Et hormis le paramètre inutilisé.

    Mais surtout la méthode inutilisée comme l'on dit mes précédents collègues.

    Jusque la tu ne l'utilises pas cette méthode... donc elle ne sert effectivement a rien.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut
    Citation Envoyé par BabaProg Voir le message
    donc ça marche mais j'ia l'impression que la méthode getRandom() ne marche pas savez pourquoi ?
    C'est pas qu'elle ne marche pas, mais que tu ne l'as pas utilisé :

    Citation Envoyé par choukie12
    Par contre, petit question, n'as tu pas oublié d'utiliser ta méthode getRandom()?
    Citation Envoyé par wax78
    Mais surtout la méthode inutilisée comme l'on dit mes précédents collègues.
    Jusque la tu ne l'utilises pas cette méthode... donc elle ne sert effectivement a rien.
    Il ne suffit pas de déclarer une méthode pour qu'elle fonctionne.

    Au lieu de positionner de manière fixe, ton image1, image2, image3, utilise plutôt la méthode.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Image image1 = ImageIO.read(new File("bleu.jpg"));
    			Image image2 = ImageIO.read(new File("rouge.jpg"));
    			Image image3 = ImageIO.read(new File("noir.jpg"));
    			g.drawImage(image1, 0, 0, this);
    			g.drawImage(image2, 0, 0, this);
    			g.drawImage(image3, 0, 0, this);
    essaie quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Image image = ImageIO.read(new File(getRandom(null));
               g.drawImage(image, 0, 0, this);
    A penser que ton getRandom, va devoir te retourner le nom de l'image.

    Jérémy.

  10. #10
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut
    ok je vais essayer ça dès que je suis chez moi

  11. #11
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut
    Par la même occasion, tu peux enlever le paramètre d'entrée de la méthode si tu ne l'utilises pas.

    faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static String getRandom() {
    			String [] array1 = {"image1", "image2", "image3"};
    			int rnd = new Random().nextInt(array1.length);
    			return array1[rnd];
    }
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static String getRandom(String[] array) {
    			String [] array1 = {"image1", "image2", "image3"};
    			int rnd = new Random().nextInt(array1.length);
    			return array1[rnd];
    		}
    Jérémy

  12. #12
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut
    je pense que j'ai bien fait tous se que vous avez dit merci je vous met un screen j'aurai du être un peut plus claire (désolé) je suis débutant en java et je voudrai créer un jeu avec des amis(je suis le seul développeur)et en gros je voudrai une génération aléatoire (style minecraft) le monde est une planète aquatic avec en première couche qui serai de l'eau et le reste des fond marin et c'est les fond marins que je voudrais générer aléatoirement mais je ne sais pas comment faire pouvez -vous m'aidez svp ?


    Si je n'était pas assez claire dite le moi
    Images attachées Images attachées  

  13. #13
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut
    Bonjour,

    Tu veux faire une superposition d'image pour créer un monde?
    Du style obtenir ce genre d'image :
    Nom : pt98374.1307109.w430.jpg
Affichages : 139
Taille : 46,6 Ko

    Que la mer soit une image et que le corail une autre?

    Je comprends pas trop bien.

    PS :
    Quand je t'ai dis de faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    g.drawImage(image1, 0, 0, this);
    g.drawImage(image2, 10, 0, this);
    g.drawImage(image3, 20, 0, this);
    C'était juste pour te montrer que tu dessinais tes couleurs les unes sur les autres et que du coup c'est normal de ne voir que la dernière dessinée.

    Jérémy-

  14. #14
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut
    Oui c est exactement ça

  15. #15
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Par défaut
    Hello,

    Pour être franc j’ai que très peu travaillé avec les images comme ça.

    Ce que j’aurais tendance à dire, c’est d’avoir les images que tu superposes travaillées au niveau de la transparente. Ainsi quand tu les dessines, elles ne se cacheront pas intégralement (point a vérifier)

    Jeremy

  16. #16
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Août 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 31
    Par défaut
    Okay est auriez vous une idée pour gérer la transparence en java je suppose que c est toujours avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g.drawImage(10,0 this);
    ?

  17. #17
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Ben non, l'image est transparente ou elle ne l'est pas. Ce n'est pas la commande qui dit de dessiner cette image qui va y changer quelque chose.

    "Gérer la transparence" ça veut rien dire. Tu dois décrire la situation dans laquelle tu es.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Encore génération aléatoire
    Par sebdu94 dans le forum C
    Réponses: 22
    Dernier message: 21/05/2007, 10h58
  2. Problème de génération aléatoire
    Par sebdu94 dans le forum C
    Réponses: 13
    Dernier message: 19/05/2007, 19h04
  3. [VBA-E] memmory génération aléatoire d'images
    Par jhonnybegood dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/03/2007, 22h09
  4. génération aléatoire
    Par acewb00 dans le forum MFC
    Réponses: 1
    Dernier message: 02/12/2005, 10h46
  5. génération aléatoire de couleur claire
    Par jiraiya dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 25/02/2004, 20h52

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