TexteArea non reinitialisé !

Résolu
Signaler
Messages postés
5
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
28 janvier 2005
-
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
-
Au secours..., c'est pour demain !(je sais je m'y prends au dernier moment...)

Voici mon programme et mon problème :
Il s'agit d'un diaporama ,
avec affichage de commentaires pour chaque photo. Quand on clic sur le
boutton admirer, la photo se charge ainsi que les commentaires lui
correspondant(dans un textarea) se trouvant dans un fichier spécifique.
Je précise, que le pog fonctionne, il change les photos ainsi que les
commentaires (en effaçant les précédents).

Mais quand un fichier commentaire manque (c'est volontaire) un message
d'erreur s'affiche"erreur de fichier" mais avec le commentaire de la
photo précédente. Je voudrais qu'il n'y ai que le message
d'erreur qui s'affiche,
alors je vous remercie d'avance pour vos réponses !



import java.awt.* ;

import java.applet.* ;

import java.awt.image.* ;

import java.io.*;

import java.net.*;

import java.awt.event.* ;



public class Visualiseur extends Applet {

protected Panel p1,p11,p12,p2;

protected String [] listephoto, commentaire;

protected String menu, nom;

protected Choice c ;

protected Button ok ;

protected Image image ;

protected int nbphoto, nbcomm;

protected TextArea txt;

protected Delegue delegue;

protected Adaptateur adapt;



public void init(){

setLayout(new BorderLayout()) ;

nom="listephotos";

chargement();

nbphoto=nbcomm;

listephoto=new String[nbphoto];

for (int i = 0 ; i < nbphoto ; i++){

listephoto[i]=commentaire[i];}

p1 = new Panel() ;

p1.setLayout(new BorderLayout());

p11 = new Panel();

p12 = new Panel();

c = new Choice();

for (int i=0;i<nbphoto ;i="" {="">

menu=listephoto[i];

c.add(menu);

}

p11.add(c);

p1.add("North",p11) ;

ok = new Button("Admirer") ;

p12.add(ok);

p1.add("South",p12) ;

add("North", p1) ;

p2 = new Panel();

txt = new TextArea(7,40) ;

p2.add(txt) ;

add("South",p2);

delegue=new Delegue(this);

adapt=new Adaptateur(delegue);

ok.addActionListener(adapt);

nom=listephoto[0];

}



public void chargement(){

URL url ;

InputStream stream ;

BufferedReader fichier ;

try {

url = new URL(getDocumentBase(), nom+".txt") ;

stream = url.openStream() ;


fichier =new BufferedReader(new
InputStreamReader(stream));

}

catch (IOException e) {


txt.setText("erreur de fichier\n") ; return ;
//message qui devrait être sans les commentaires !


}

try {

nbcomm = Integer.parseInt(fichier.readLine()) ;


commentaire=new String[nbcomm];

for (int i = 0 ; i < nbcomm ; i++)


commentaire[i] = fichier.readLine() ;

}

catch (IOException e) {


txt.setText("erreur lecture") ; return ;


}

}



public void paint(Graphics g) {

image = getImage(getDocumentBase(), nom+".JPG") ;

g.drawImage(image, 25,80, this) ;

}

}



class Delegue {

protected Visualiseur visu;

Delegue (Visualiseur v) {

visu=v;

}



public void admirer(){

visu.nom= visu.c.getSelectedItem();

for(int i=0;i<visu.nbphoto ;i="">

if (visu.nom.equals(visu.listephoto[i])){

visu.repaint();


}


}

visu.txt.setText("");

visu.chargement();

for (int j=0;j<visu.nbcomm ;j="">

visu.txt.setText(visu.txt.getText() + visu.commentaire[j]+"\n") ;


}

}

}



class Adaptateur implements ActionListener {

protected Delegue delegue;

public Adaptateur (Delegue d){

delegue = d;

}

public void actionPerformed(ActionEvent e){

delegue.admirer();

}

}
</visu.nbcomm></visu.nbphoto></nbphoto>

3 réponses

Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
20
Slut
je pense que le pb vient du fait que tu ne réinitialises pas ton tableau de commentaire alors qu'il n'y a pas de fichier de commentaire. Essai de faire un "commentaire=new String[0];

" avant de faire tes try.

Voilà

[Tout le monde a des idées : la preuve, c'est qu'il y en a de mauvaises]
Messages postés
5
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
28 janvier 2005

Merci beaucoup indiana_jules, j'ai pu rendre mon "devoir de débutant" ;) dans les temps.
Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
20