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 :

supprimer un element


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut supprimer un element
    Bonjour,
    J'ai une classe plateau contenant un labyrinthe centré avec un borderlayout(qui est un tableau de case(qui est un panneau)).
    Je voudrais savoir comment je peux supprimer du panneau le labyrinthe car j'ai toujours l'erreur nullPointeur.
    En fait, je voudrais supprimer le labyrinthe et en remettre un par dessus...

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par franfr57
    Bonjour,
    J'ai une classe plateau contenant un labyrinthe centré avec un borderlayout(qui est un tableau de case(qui est un panneau)).
    Je voudrais savoir comment je peux supprimer du panneau le labyrinthe car j'ai toujours l'erreur nullPointeur.
    En fait, je voudrais supprimer le labyrinthe et en remettre un par dessus...

    Merci de votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    plateau.remove( ancienLabyrinthe ) ;
    plateau.add( nouveauLabyrinthe, BorderLayout.CENTER ) ;
    plateau.validate ;
    ++

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Merci c'est exactement ce que j'ai fait, mais cela me génère nullpointer à la ligne ou je supprime le labyrinthe!!

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par franfr57
    Merci c'est exactement ce que j'ai fait, mais cela me génère nullpointer à la ligne ou je supprime le labyrinthe!!
    Ca veut dire que soit ton plateau soit ton ancienLabyrinthe est null. Il faut vérifier ça.

  5. #5
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    J'imagine que c'est ton ancien labyrinthe qui vaut null, car la 1ère fois que tu met un labyrinthe il n'y a pas d'ancien !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private Labyrinthe oldLab = null ;
     
    [...]
     
    public void setLab( Labyrinthe newLab )
    {
       if ( oldLab != null )
          plateau.remove( oldLab ) ;
       plateau.add( newLab , BorderLayout.CENTER ) ;
       plateau.validate ;
       old = newLab ;
    }

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Je n'arrive toujours pas à résoudre mon problème :

    Voici le code de ma classe plateau :
    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
     
    public class Plateau extends Panel
    {
    	private Label pacman;
    	private Label vie;
    	private Labyrinthe laby;
    	private boolean etat;
    	public Plateau()
    	{
    		super();
    		//Ajout de la bordure
    		this.setBackground(Color.WHITE);
    		//this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
     
    		pacman = new Label("PACMAN");
    		vie = new Label("Vie(s) : ");
    		laby = new Labyrinthe();
     
    		this.setLayout(new BorderLayout());
    		this.add(pacman, BorderLayout.NORTH);
    		pacman.setAlignment(1);
    		this.add(laby, BorderLayout.CENTER);
    		this.add(vie, BorderLayout.SOUTH);
     
    		etat=true;
    	}
    	public Labyrinthe getLaby() 
    	{
    		return laby;
    	}
    	public void setLaby(Labyrinthe laby) 
    	{
    		this.laby = laby;
    	}
    }
    et celui de ma classe ecouteurboutonOuvrir :

    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
     
    public class EcouteurBoutonOuvrir implements ActionListener 
    {
    	private Plateau plateau;
    	public EcouteurBoutonOuvrir(Plateau p)
    	{
    		this.plateau=p;
    	}
    	public void actionPerformed(ActionEvent ae)
    	{
    		//création d'un nouveau filechosser
    		JFileChooser choix = new JFileChooser();
    	    //repertoire de depart
    	    choix.setCurrentDirectory(new File("niveaux"));
    	    if (choix.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {    
    	     	String path = choix.getSelectedFile().getAbsolutePath(); //si un fichier est selectionné, récupérer le fichier puis sont path et l'afficher dans le champs de texte
    	     	int[][] t = Fichiers.lireFichier(path);
    	     	Labyrinthe l = new Labyrinthe();
    	     	plateau.remove(plateau.getLaby());
    	     	plateau.setLaby(l);
    	     	plateau.add(plateau.getLaby(),BorderLayout.CENTER);
    	     	plateau.validate();
     		}
    	}
    }
    J'ai une erreur pour chacune des lignes suivantes :
    plateau.remove(plateau.getLaby());
    plateau.setLaby(l);
    plateau.add(plateau.getLaby(),BorderLayout.CENTER);

    J'ai l'erreur nullpointeurexception...

    Merci pour votre aide

Discussions similaires

  1. [langage] Supprimer un élément dans une liste
    Par myjuna dans le forum Langage
    Réponses: 15
    Dernier message: 06/08/2014, 11h49
  2. [VB.NET][listbox] Comment supprimer un element ?
    Par am.adnane dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/07/2006, 00h28
  3. Réponses: 4
    Dernier message: 24/05/2006, 16h05
  4. supprimer un element d'un vecteur
    Par watcha2020 dans le forum C++
    Réponses: 1
    Dernier message: 13/02/2006, 22h44
  5. supprimer un element d'un tableau vector
    Par boby61 dans le forum SL & STL
    Réponses: 22
    Dernier message: 23/03/2005, 20h49

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