TexteArea non reinitialisé !

Résolu
boubacach Messages postés 5 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 28 janvier 2005 - 27 janv. 2005 à 16:59
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 - 31 janv. 2005 à 08:42
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

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
27 janv. 2005 à 18:03
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]
3
boubacach Messages postés 5 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 28 janvier 2005
28 janv. 2005 à 22:57
Merci beaucoup indiana_jules, j'ai pu rendre mon "devoir de débutant" ;) dans les temps.
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
31 janv. 2005 à 08:42
0
Rejoignez-nous