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 :

ecrire une methode aves des classes imbriquées


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 36
    Par défaut ecrire une methode aves des classes imbriquées
    Bonjour,
    Je bloque sur ma méthode qui me donne une erreur à la compilation,j'ai crée une class avec un tableau d'images, je cherche à récupérer le nom de mes images qui se trouve dans une autre class puis en faire une liste:
    l'erreur est à ligne:
    Collection.java:50: ')' expected
    this.mesImagesLues[j]=new Bitmap(String n);

    je suis pas sûr d'avoir bien fait pour récupérer le nom de l'image
    Merci de votre aide.

    ma collection d'images :
    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
    import java.io.*;
    import java.util.Scanner;
    public class Collection {	
    	Scanner sc = new Scanner(System.in);
     
    	Bitmap []mesImagesLues;
    	int nbImagesLues=0;
     
    	Bitmap []mesImagesCrees;
    	int nbImagesCrees=0;
     
    	Collection(){	//constructeur
    		Bitmap []mesImagesLues=new Bitmap[0];
    		this.nbImagesLues=0;
    		Bitmap []mesImagesCrees=new Bitmap[0];
    		this.nbImagesCrees=0;
    	}
     
    	void ajouterImageLues(Bitmap A){ 
    		Bitmap []ImgLuesNv=new Bitmap[mesImagesLues.length + 1];
    		for (int i=0; i<mesImagesLues.length; i++)
    			ImgLuesNv[i]=mesImagesLues[i];
    		ImgLuesNv[mesImagesLues.length]=A;
    		mesImagesLues=ImgLuesNv;
     
    	}
    	void ajouterImageCrees(Bitmap X){ 
    		Bitmap []ImgCreesNv=new Bitmap[mesImagesCrees.length + 1];
    		for (int i=0; i<mesImagesCrees.length; i++)
    			ImgCreesNv[i]=mesImagesCrees[i];
    		ImgCreesNv[mesImagesCrees.length]=X;
    		mesImagesCrees=ImgCreesNv;
    	}
     
    	void supprimerImageLues(){		
    		System.out.println("Quelle image voulez-vous supprimer ?");
    		int Ind=sc.nextInt();
    		int IndSup=Ind-1;
    		Bitmap []ImgLuesNv=new Bitmap[mesImagesLues.length - 1];
    		for( int i=0;i<IndSup;i++)
    			ImgLuesNv[i]=mesImagesLues[i];
    		for( int i=0;i<ImgLuesNv.length-IndSup;i++)
    			ImgLuesNv[i+IndSup]=mesImagesLues[i+(IndSup+1)];
    		mesImagesLues=ImgLuesNv;
    	}
     
    	Collection saisirCollection(){ 
    		for(int j=0;j<this.mesImagesLues.length;j++){	
    			this.mesImagesLues[j]=new Bitmap(String n); //erreur à la compil pourtant je respecte le constructeur Bitmap
    			this.mesImagesLues[j].ie=new ImageExterneLue(n);
    		}
    		return this;
    	}
     
    	void afficherCollection(){
    		System.out.println("liste d'images");
    		for(int i=0;i<mesImagesLues.length;i++){
    			System.out.println( (i+1)+ "- ");
    			mesImagesLues[i].saisiCollection();
    		}
    	}
    }
    ma class Images:

    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
    import java.io.*;
    import java.util.Scanner;
     
    public class Bitmap {
        Scanner sc = new Scanner(System.in);
        int[][][]data;
        String nom;
        ImageExterne ie;
        Bitmap(String n) throws IOException, FileNotFoundException { // constructeur pour les images lues
            this.ie=new ImageExterneLue(n);
            this.nom=n;
            this.data=((ImageExterneLue)ie).getTableau();
        }
        Bitmap(int largeur, int hauteur){		// constructeur pour les images créés
            this.data=new int[largeur][hauteur][3];
            for(int x=0;x<this.data.length;x++){  
                        for(int y=0;y<this.data[0].length;y++){
                                this.data[x][y][0]=250;
                                this.data[x][y][1]=250;
                                this.data[x][y][2]=250;
                        }
            }
            this.nom=null;
            this.ie=new ImageExterneCree(this.data);
        }
        Bitmap(int largeur, int hauteur,int R,int V, int B){
            this.data=new int[largeur][hauteur][3];
            for(int x=0;x<this.data.length;x++){
                        for(int y=0;y<this.data[0].length;y++){
                                this.data[x][y][0]=R;
                                this.data[x][y][1]=V;
                                this.data[x][y][2]=B;
                        }
            }
            this.nom=null;
            this.ie=new ImageExterneCree(this.data);
        }
       Bitmap creerImage(Bitmap ImgLue){		//Bitmap creerImage(Bitmap ImgLue){
        	    this.data=ImgLue.data;
        	    this.nom=null;
        	    this.ie=new ImageExterneCree(this.data);
        	    return this;
       }

    et la dernière utilisée dans la class Bitmap:

    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
    import javax.imageio.*; 
    import java.awt.image.*;
    import java.io.*;
    public class ImageExterneLue extends ImageExterne{
        public ImageExterneLue(String nomf) throws IOException, 
    					      FileNotFoundException{
    	img = ImageIO.read(new File(nomf));
    	this.showImage();
        }
        public int[][][] getTableau(){
    	int wid, hei;
    	wid = img.getWidth();
    	hei = img.getHeight();
    	int[][][] res = new int[wid][hei][3];
    	int[] rgb = img.getRGB(0,0,wid,hei,null,0,wid);
    	for (int i=0; i<rgb.length; i++){
    	    res[i%wid][i/wid][0]=rgb[i]>>16 & 0xFF;
    	    res[i%wid][i/wid][1]=rgb[i]>>8 & 0xFF;
    	    res[i%wid][i/wid][2]=rgb[i] & 0xFF;
    	}
    	return res;
        }

  2. #2
    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
    Regarde sur la ligne suivante, comment le constructeur est appelé.

    Sur la ligne suivante, il y a juste n, pas String n, et il n'y a pas d'erreur. Pourquoi "String" n, au juste ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 36
    Par défaut
    le constructeur pour les images lues est comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Bitmap(String n) throws IOException, FileNotFoundException { // constructeur pour les images lues
            this.ie=new ImageExterneLue(n);
            this.nom=n;
            this.data=((ImageExterneLue)ie).getTableau();
    c'est pour ça que j'ai mis un (String n) dans ma methode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Collection saisirCollection(){ 
    		for(int j=0;j<this.mesImagesLues.length;j++){	
    			this.mesImagesLues[j]=new Bitmap(String n); //erreur à la compil pourtant je respecte le constructeur Bitmap
    			this.mesImagesLues[j].ie=new ImageExterneLue(n);
    		}
    		return this;
    	}

  4. #4
    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
    Oui, tout comme le constructeur de ImageExterneLue

    Pourtant, lui, quand tu l'appelles, tu ne fais pas String n, tu fais juste n. Alors pourquoi tu fais pas pareil avec Bitmap ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 36
    Par défaut
    J'ai déjà essayé il me dit qu'il ne reconnait pas la variable n

  6. #6
    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
    Bon, eh ben ce n'est pas la même erreur, ça avance .

    Il se plaint que la variable n n'existe pas. Puisque ça n'existe pas, tu ne peux pas le passer en paramètre d'un constructeur ou d'autre chose : on ne peut faire des choses qu'avec ce qui existe.

    Ces constructeurs veulent une String en paramètre, fais en sorte d'avoir une String à leur donner, et donne-leur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [C#]Remonter des événements dans des classes imbriquées
    Par Kcirtap dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/12/2013, 12h43
  2. Réponses: 2
    Dernier message: 15/03/2007, 14h00
  3. Réponses: 3
    Dernier message: 09/08/2006, 11h58
  4. [Reflection] Retrouver une methode avec des parametres primitifs
    Par rozwel dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 06/02/2006, 15h39
  5. Intérêt des classes imbriquées ?
    Par elitost dans le forum Langage
    Réponses: 5
    Dernier message: 21/10/2005, 09h30

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