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 :

Valeur à utiliser dans diférentes classes


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut Valeur à utiliser dans diférentes classes
    Bonjour,
    Dans une classe A, je crée une méthode et dans cette méthode je calcule un xmin.
    Je voudrais utiliser ce xmin dans une méthode à l’intérieur d'une autre classe B. Mais juste en mettant xmin dans la méthode (classe B) il me met une erreur et ne reconnait pas xmin. Je ne sais pas si c'est important mais il y a le xmin appartient à un try dans la méthode de la classe A.
    Comment faire svp ?

  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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Donne nous le code pour qu'on puisse te répondre.
    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 averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut
    Je fais un certain nombre d'opération dans cette classe notamment trouver xmin,xmax et ymin,ymax d'un fichier geojson. J'aimerai utiliser ces valeur dans une autre classe. Comment faire ?
    Pour l'instant, j'ai afficher les valeurs et je les ai recopié dans l'autre classe.

    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
    public class LireGeojson {
         public static void lirefichier (String file, Polygon [] c){
         try (InputStream fis = new FileInputStream(file)) {
     
                // creation du jsonreader nommé fis
                JsonReader jsonReader = Json.createReader(fis);
                // lecture de l objet de base
                JsonObject features = jsonReader.readObject();
                // on recupere l'element feature dans le fichier de base il s agit d un tableau
                JsonArray array = (JsonArray) features.get("features");
     
                JsonObject toto1 = (JsonObject) array.get(0);
                // mettre dans toto2 les elements de geometry
                JsonObject toto2 = toto1.getJsonObject("geometry");
                // mettre dans coords les element de coordinates et de geometry
                JsonArray coords = toto2.getJsonArray("coordinates");
     
                JsonArray coords1 = coords.getJsonArray(0).getJsonArray(0).getJsonArray(3);
                // obtenir la premiere valeur du tableau
                JsonNumber val = coords1.getJsonNumber(0);
                //créer couleur blanc
                int white = new Color(255, 255, 255).getRGB();
                // cc est la taille du tableau de coordonnees, nombre de coordonnées
                int cc = coords.size();
                // on cree un tableau de taille cc vide
                int [] size = new int [cc];
     
                //Range les coordonnées de chaque polygon dans le tableau size de taille cc
                for (int j = 0; j<cc;j++){
                    size[j] = coords.getJsonArray(j).getJsonArray(0).size();
                }
     
     
                //on extrait les premières coordonnées des points
                int xmax = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(0).intValue();
                int xmin = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(0).intValue();
                int ymax = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(1).intValue();
                int ymin = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(1).intValue();
     
     
     
                for (int j=0;j<cc;j++){
     
     
                    for (int i = 0; i < size[j]; i++) {
     
                //Utilisation des méthodes getJasonArray pour récupérer le premier caractère 
                    JsonArray coords2 = coords.getJsonArray(j).getJsonArray(0).getJsonArray(i);
                    //Le caractère "0" correspond à la coordonné "x" et le caractère "1" correspond à la coordonnée "y"
                    // on initialise x et y
                    int x = coords2.getJsonNumber(0).intValue();
                    int y = coords2.getJsonNumber(1).intValue();
                    // on chercher le xmax xmin ymax ymin
                    if (x > xmax) {
                        xmax = x;
                    }
                    if (x < xmin) {
                        xmin = x;
                    }
     
                    if (y > ymax) {
                        ymax = y;
                    }
                    if (y < ymin) {
                        ymin = y;
                    }
                    }
                }
         System.out.println(xmin);
         System.out.println(xmax);
         System.out.println(ymin);
         System.out.println(ymax);

  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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Pour récupérer ces valeurs à la fin de l'appel de ta méthode, il va falloir les retourner à l'appelant. Comme il y a plusieurs valeurs, il va falloir te faire une classe qui les stocke, genre :

    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 MinMax {
        private final int xmin;
        private final int xmax;
     
        ...
     
        public MinMax(int xmin, int xmax...) {
             this.xmin = xmin;
             ...
        }
     
        public final int getXMin() {
            return xmin;
        }
     
        ...
     
    }
    tu modifies ta méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public MinMax lirefichier(...)  {
     
        ...
     
        return new MinMax( xmin, xmax... );
     
    }
    Et comme ça tu peux l'appeler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MinMax minmax = LireGeojson.lirefichier(...);
     
    autreclasse.traitement(minmax); // par exemple : ce qui te permettra d'utiliser les valeurs lues de ton fichier dans la méthode traitement...
    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
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut
    Dans ma méthode, je ne fais pas que trouver le min et le max, je fais ensuite d'autres opérations. Donc je ne peux pas modifié le nom de ma méthode.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut
    Voila ma méthode complète :

    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
    import fr.ema.apo.AnimatedFrame;
    import java.awt.Color;
    import java.awt.Polygon;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import static java.lang.Integer.parseInt;
    import static java.lang.Math.floor;
    import static java.lang.Math.max;
    import java.util.Scanner;
    import javax.json.Json;
    import javax.json.JsonArray;
    import javax.json.JsonNumber;
    import javax.json.JsonObject;
    import javax.json.JsonReader;
     
    public class LireGeojson {
         public static void lirefichier (String file, Polygon [] c){
         try (InputStream fis = new FileInputStream(file)) {
     
                // creation du jsonreader nommé fis
                JsonReader jsonReader = Json.createReader(fis);
                // lecture de l objet de base
                JsonObject features = jsonReader.readObject();
                // on recupere l'element feature dans le fichier de base il s agit d un tableau
                JsonArray array = (JsonArray) features.get("features");
     
                JsonObject toto1 = (JsonObject) array.get(0);
                // mettre dans toto2 les elements de geometry
                JsonObject toto2 = toto1.getJsonObject("geometry");
                // mettre dans coords les element de coordinates et de geometry
                JsonArray coords = toto2.getJsonArray("coordinates");
     
                JsonArray coords1 = coords.getJsonArray(0).getJsonArray(0).getJsonArray(3);
                // obtenir la premiere valeur du tableau
                JsonNumber val = coords1.getJsonNumber(0);
                //créer couleur blanc
                int white = new Color(255, 255, 255).getRGB();
                // cc est la taille du tableau de coordonnees, nombre de coordonnées
                int cc = coords.size();
                // on cree un tableau de taille cc vide
                int [] size = new int [cc];
     
                //Range les coordonnées de chaque polygon dans le tableau size de taille cc
                for (int j = 0; j<cc;j++){
                    size[j] = coords.getJsonArray(j).getJsonArray(0).size();
                }
     
     
                //on extrait les premières coordonnées des points
                int xmax = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(0).intValue();
                int xmin = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(0).intValue();
                int ymax = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(1).intValue();
                int ymin = coords.getJsonArray(0).getJsonArray(0).getJsonArray(0).getJsonNumber(1).intValue();
     
     
     
                for (int j=0;j<cc;j++){
     
     
                    for (int i = 0; i < size[j]; i++) {
     
                //Utilisation des méthodes getJasonArray pour récupérer le premier caractère 
                    JsonArray coords2 = coords.getJsonArray(j).getJsonArray(0).getJsonArray(i);
                    //Le caractère "0" correspond à la coordonné "x" et le caractère "1" correspond à la coordonnée "y"
                    // on initialise x et y
                    int x = coords2.getJsonNumber(0).intValue();
                    int y = coords2.getJsonNumber(1).intValue();
                    // on chercher le xmax xmin ymax ymin
                    if (x > xmax) {
                        xmax = x;
                    }
                    if (x < xmin) {
                        xmin = x;
                    }
     
                    if (y > ymax) {
                        ymax = y;
                    }
                    if (y < ymin) {
                        ymin = y;
                    }
                    }
                }
         System.out.println(xmin);
         System.out.println(xmax);
         System.out.println(ymin);
         System.out.println(ymax);
     
     
                for (int j=0;j<cc;j++){
                Polygon ip = new Polygon(); 
                // size est le tableau vide
                for (int i = 0; i < size[j]; i++) {
     
     
                    JsonArray coords3 = coords.getJsonArray(j).getJsonArray(0).getJsonArray(i);
     
                    //Le caractère "0" correspond à la coordonné "x" et le caractère "1" correspond à la coordonnée "y"
                    int x5 = coords3.getJsonNumber(0).intValue();
                    int y5 = coords3.getJsonNumber(1).intValue();
                    //On réduit les coordonnées à la taille de l'image
                    int x2 = (int) floor((x5-xmin)*200/(xmax-xmin));
                    int y2 = (int) floor((y5-ymin)*200/(xmax-xmin));
     
                    ip.addPoint(x2, 200-(y2));
                }
     
                c[j]=ip;
                }   
            } 
         catch (IOException ex) {
                System.out.println("erreur");
            }   
         }
     
    }

  7. #7
    Modérateur

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

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

    Citation Envoyé par emamousse Voir le message
    Donc je ne peux pas modifié le nom de ma méthode.
    Alors déjà personne n'a parlé de modifier son nom, mais je suppose que tu parlais de remplacer void par la valeur de retour qui t'intéresse.
    Eh ben si si, tu peux. Vas-y, essaie, n'aie pas peur.

    Citation Envoyé par emamousse Voir le message
    Dans ma méthode, je ne fais pas que trouver le min et le max, je fais ensuite d'autres opérations.
    Ces opérations ne sont pas faites dans le vent, je suppose. L'idée est qu'elles produisent un résultat. Eh bien ce résultat, tu peux l'envoyer en valeur de retour, à la place de void, de ta méthode.

    Si au bout du compte, il n'y a plus que les min/max qui t'intéressent, ce résultat peut être une classe comme le MinMax proposé.
    S'il y en a plus, il va falloir faire encore une autre classe, qui contient le MinMax, et tout le reste aussi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/04/2011, 10h32
  2. Réponses: 1
    Dernier message: 12/04/2009, 17h54
  3. Réponses: 1
    Dernier message: 08/08/2008, 17h12
  4. Réponses: 4
    Dernier message: 22/07/2008, 22h03
  5. Function utilisable dans plusieurs classes
    Par zulot dans le forum C++
    Réponses: 7
    Dernier message: 05/06/2007, 00h01

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