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

AWT/Swing Java Discussion :

exemple qui ne compile pas


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Points : 78
    Points
    78
    Par défaut exemple qui ne compile pas
    bonjour,

    Je regardais dans la fac comment faire un filtre pour la boite de dialogue pour ouvrir les fichiers.
    J'ai telechargé l'exemple et j'ai essayé de le compiler. Mais J'ai 8 messages d'erreurs qui sont les suivant :
    FiltreExtensible.java:9: <identifier> expected
    private List<String> extensions;
    ^
    FiltreExtensible.java:16: '(' or '[' expected
    this.extensions = new ArrayList<String>();
    ^
    FiltreExtensible.java:24: ';' expected
    for(String extension : extensions){
    ^
    FiltreExtensible.java:30: illegal start of expression
    }
    ^
    FiltreExtensible.java:34: ';' expected
    for(String extension : extensions){
    ^
    FiltreExtensible.java:38: illegal start of expression
    }
    ^
    FiltreExtensible.java:58: <identifier> expected
    public List<String> getExtensions(){
    ^
    FiltreExtensible.java:82: ';' expected
    }
    ^
    8 errors
    Je pense que l'exemple est normalement juste donc je ne comprends pas pourquoi ca ne veut pas le compiler. Je n'ai rien changé au fichier (filtreExetensible.java) que j'ai telechargé de la fac.

    Merci de votre aide

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Utilise java 1.5 et non pas une version antérieure...

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Le probleme c'est que ca doit marcher sur l'environnement de la fac. Et maleuheuresement je ne pense pas que les admins vont s'amuser à tous changer pour moi...

    il y a t'il un autre moyen de faire?

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ne pas utiliser les generics
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Que puis je utiliser à la place de la liste?

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ce n'est pas la liste qui pose problème mais les generics: c'est à dire les <String>, elève les et caste tes objets à la place c'est à dire qu'au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<String> l = new ArrayList<String> ();
    l.add("toto");
    String s = l.get(0);
    tu
    feras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List l = new ArrayList();
    l.add("toto");
    String s = (String) l.get(0);
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    J'ai essayer de changer le fichier avec se que tu m'as dit. J'ai ausi du changer les boucles for du style( string extension : extentions) que le compilateur n'aime pas.

    Il me reste une erreur a corrgier. Elle est survenue quand j'ai transformer la boucle for, en passant un iteroator au lieu dun String directement. Voici la boucle qui pose probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //Implémentation de FileFilter
    	public boolean accept(File file){
    		if(file.isDirectory() || extensions.size()==0) { 
    			return true; 
    		} 
    		String nomFichier = file.getName().toLowerCase(); 
    		for(Iterator extension = extensions.iterator(); extension.hasNext();){
    			if(nomFichier.endsWith(extension)){
    				return true;
    			}	
    		}
    		return false;
    	}
    Je ne voit pas comment forcer l'iterator pour avoir un string.

    Merci de ton aide.

  8. #8
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par Edta
    J'ai essayer de changer le fichier avec se que tu m'as dit. J'ai ausi du changer les boucles for du style( string extension : extentions) que le compilateur n'aime pas.

    Il me reste une erreur a corrgier. Elle est survenue quand j'ai transformer la boucle for, en passant un iteroator au lieu dun String directement. Voici la boucle qui pose probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //Implémentation de FileFilter
    	public boolean accept(File file){
    		if(file.isDirectory() || extensions.size()==0) { 
    			return true; 
    		} 
    		String nomFichier = file.getName().toLowerCase(); 
    		for(Iterator extension = extensions.iterator(); extension.hasNext();){
    			if(nomFichier.endsWith(extension)){
    				return true;
    			}	
    		}
    		return false;
    	}
    Je ne voit pas comment forcer l'iterator pour avoir un string.

    Merci de ton aide.
    Il faut utiliser la méthode next de Iterator et caster son résultat en String.


    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
     
    //Implémentation de FileFilter
    	public boolean accept(File file){
    		if(file.isDirectory() || extensions.size()==0) { 
    			return true; 
    		} 
    		String nomFichier = file.getName().toLowerCase(); 
    		for(Iterator extension = extensions.iterator(); extension.hasNext();){
                            String extensionCourante = (String)extension.next();
    			if(nomFichier.endsWith(extensionCourante)){
    				return true;
    			}	
    		}
    		return false;
    	}

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  9. #9
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    J'ai changer la boucle comme vous me l'avez dit. Maintenant ca compile sans probleme. Mais quand je le lance, j'ai un jolie out of memery....

    Voici le code complet, comme je l'ai changé.

    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
     
    import java.io.File; 
    import java.util.*; 
    import javax.swing.*;
    import javax.swing.filechooser.*;
     
    public class FiltreExtensible extends FileFilter{
    	//Description et extensions acceptées par le filtre
    	private String description;
    	private List extensions;
    	//Constructeur à partir de la description
    	public FiltreExtensible(String description){
    		if(description == null){
    			throw new NullPointerException("La description ne peut être null.");	
    		}
    		this.description = description;
    		this.extensions = new ArrayList();
    	}
    	//Implémentation de FileFilter
    	public boolean accept(File file){
    		if(file.isDirectory() || extensions.size()==0) { 
    			return true; 
    		} 
    		String nomFichier = file.getName().toLowerCase(); 
    		for(Iterator extension = extensions.iterator(); extension.hasNext();){
    			if(nomFichier.endsWith((String)extension.next())){
    				return true;
    			}	
    		}
    		return false;
    	}
    	public String getDescription(){
    		StringBuffer buffer = new StringBuffer(description);
    		buffer.append(" (");
    		for(Iterator extension = extensions.iterator(); extension.hasNext(); ){
    			buffer.append(extension).append(" ");	
    		}	
    		return buffer.append(")").toString();
    	}	
    	//Quelques méthodes utilitaires
    	public void setDescription(String description){
    		if(description == null){
    			throw new NullPointerException("La description ne peut être null.");	
    		}
    		this.description = description;
    	}
    	public void addExtension(String extension){
    		if(extension == null){
    			throw new NullPointerException("Une extension ne peut être null.");	
    		}	
    		extensions.add(extension);
    	}
    	public void removeExtension(String extension){
    		extensions.remove(extension);	
    	}
    	public void clearExtensions(){
    		extensions.clear();
    	}
    	public List getExtensions(){
    		return extensions;	
    	}
     
    //	Test
    	public static void main(String[] args){
     
    		FiltreExtensible filtre = new FiltreExtensible("Fichiers Java");
    		filtre.addExtension(".java");
     
    		JFileChooser chooser = new JFileChooser(".");
    		chooser.addChoosableFileFilter(filtre);
    		chooser.showOpenDialog(null);
     
    		filtre.addExtension(".class");
    		chooser.showOpenDialog(null);
     
    		filtre.setDescription("Fichiers class");
    		filtre.removeExtension(".java");
    		chooser.showOpenDialog(null);
     
    		filtre.setDescription("Tous les fichiers");
    		filtre.clearExtensions();	
    		chooser.showOpenDialog(null);
    	}
    }
    il n'y a aucun autre moyen de bloquer les fichier accessibles d'une boite de dialogue ouvrir ou enregistrer?

    Merci de votre aide

  10. #10
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    normal que tu ais une outofmemory error: tu boucles à l'infini dans la méthode public String getDescription
    : tu n'appelles à aucun moment la méthode next() de ton iterator
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  11. #11
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Merci. tout marche correctement maintenant.

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

Discussions similaires

  1. 10 lignes C++ avec templates qui ne compilent pas,
    Par FrigoAcide dans le forum C++
    Réponses: 9
    Dernier message: 18/02/2008, 21h10
  2. Base de données d'exemple qui ne marche pas
    Par kedare dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 29/11/2007, 03h21
  3. sscanf - syntaxe qui ne compile pas
    Par xilebo dans le forum C
    Réponses: 4
    Dernier message: 12/09/2006, 13h41
  4. [C# 2.0] Un exemple de classe générique qui ne compile pas.
    Par Pierre8r dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/05/2006, 11h11
  5. Réponses: 5
    Dernier message: 18/05/2006, 12h06

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