Bonjour à tous, je voulais créer un tableau dynamiquement avec ma
variable "nblignes", sans utiliser de Arraylist et Vector parceque
c'est dans le cadre d'un cours et que je ne suis pas censer les
connaitres. Je vous joind mon code. Merci beaucoup de me dire ou cela
cloche (tableau lignes 24) .
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 [] chaine;
protected String nom1, res;
protected Choice c ;
protected Button ok ;
protected Image image ;
protected int nblignes, n;
protected TextArea txt;
protected Delegue delegue;
protected Adaptateur adapt;
public void init(){
setLayout(new BorderLayout()) ;
chargement();
chaine=new String[nblignes];
p1 = new Panel() ;
p1.setLayout(new BorderLayout());
p11 = new Panel();
p12 = new Panel();
c = new Choice();
for (int i=0;i<nblignes;i++) {
res=chaine[i];
c.add(res);
}
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);
nom1=chaine[0];
}
public void chargement(){
URL url ;
InputStream stream ;
BufferedReader fichier ;
try {
url = new URL(getDocumentBase(), "listephotos.txt") ;
stream = url.openStream() ;
fichier =new BufferedReader(new
InputStreamReader(stream));
}
catch (IOException e) {
txt.setText("erreur de fichier") ; return ;
}
try {
nblignes = Integer.parseInt(fichier.readLine()) ;
for (int i = 0 ; i < nblignes ; i++)
chaine[i] = fichier.readLine() ;
}
catch (IOException e) {
txt.setText("erreur de transfert") ; return ;
}
}
public void paint(Graphics g) {
image = getImage(getDocumentBase(), nom1+".JPG") ;
g.drawImage(image, 25,80, this) ;
}
}
class Delegue {
protected Visualiseur visu;
Delegue (Visualiseur v) {
visu=v;
}
public void admirer(){
String res1;
res1= visu.c.getSelectedItem();
for(int i=0;i<visu.nblignes;i++){
if (res1.equals(visu.chaine[i])) {
visu.nom1=res1 ;
visu.repaint();
}
}
}
}
class Adaptateur implements ActionListener {
protected Delegue delegue;
public Adaptateur (Delegue d){
delegue = d;
}
public void actionPerformed(ActionEvent e){
delegue.admirer();
}
}