[JAVA]Recupération fichie txt dans une liste

Fermé
Jay-Jay - 18 janv. 2006 à 23:14
Karim25 Messages postés 1 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 8 mars 2008 - 8 mars 2008 à 16:10
BOnjour a tous

j'ai un petit projet a faire en java. je m'explique c'est un applet a faire dans le but de pouvoir y afficher des photos. le squelette : une liste au nord, au centre les photos et au sud une zone de texte. la 1ere etape est de créer l interface mais sans la gestion d'évenements.

La partie superieure comporte donc une liste de la classe List.
La liste des noms de photos figure dans un fichier texte qui comporte en 1ere ligne le nombre de photos puis dans les lignes suivantes les noms des photos.
La partie centrale est destiné a laffichage des photos correspondant au choix effectué dans la liste
Et la partie inferieure qui est une zone de texte

Le but est que quand lapplet se lance dans la liste il y est afficher les noms des photos et ce que je cherche a savoir comment faire

merci d'avance
A voir également:

7 réponses

choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
19 janv. 2006 à 11:57
Salut

ta question est très très vaste !!!

le mieux est que tu commences ton programme, et de nous demander conseil sur les détails qui te semblent insolubles.

Parce que là, à part écrire pour toi le programme, je vois pas trop par où commencer.

sache quand même que pour la partie interface, il y a le package awt et/ou swing à utiliser. Pour ce qui est de la récupération des données d'un fichier, il faut utiliser le package IO.

0
Re

j'ai deja bien commencé le programme il me manque le truc qui fera charger le nom des images dans la liste tien je te montre mon code :


import java.awt.* ;
import java.applet.* ;
import java.io.* ;
import java.net.* ;
import java.awt.event.* ;

public class Photos extends Applet {

protected TextArea texte ;
protected List l;
protected Panel p ;

protected Delegue delegue ;
protected Adaptateur adapt ;


public void init() {
setLayout(new BorderLayout()) ;
p = new Panel() ;
p.setBackground(Color.white);
l=new List(4);

p.add(l);
add("North", l);
texte = new TextArea();
add("South", texte) ;
delegue=new Delegue(this);
adapt=new Adaptateur(delegue);
}


}

class Delegue {
protected Photos pho ;

Delegue(Photos p) {
pho = p ;
}
}

class Adaptateur {
protected Delegue delegue ;

public Adaptateur(Delegue d) {
delegue = d ;
}

}
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
19 janv. 2006 à 13:35
0
merci mais c'est pas vraiment adapté a ce que je veux :S
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
20 janv. 2006 à 08:20
c'est un exemple... la technique sera la même.

faut juste l'adapter à tes besoins
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
20 janv. 2006 à 11:22
Salut!

package ccm.forum.appletPhotos;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;

import javax.imageio.ImageIO;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

/**
 * 
 * @author HackTrack
 * 
 * Created on January the 20th, 2006
 *
 */

public class AppletPhotos extends Applet implements ListSelectionListener {
	public static String PHOTO_FILES_LIST = "photosList.txt";
	private Label messageBox;
	private JList filesList;
	private DefaultListModel listModel;
	private BufferedImage image;
	private HashMap images;
	private int maxWidth;
	private int maxHeight;

	public AppletPhotos() {
		super();
	}

	public void init() {
		images = new HashMap();
		setLayout(new BorderLayout());

		JPanel photoDisplayPanel = new JPanel() {
			public void paint(Graphics g) {
				if (image != null) {
					g.drawImage(image, 0, 0, null);
				}
			}
		};
		photoDisplayPanel.setSize(maxWidth, maxHeight);
		photoDisplayPanel.setBackground(new Color(255, 255, 255));
		add(photoDisplayPanel, BorderLayout.CENTER);

		JPanel messagePanel = new JPanel();
		messagePanel.setBackground(new Color(132, 132, 255));
		messagePanel.setForeground(Color.WHITE);
		messageBox = new Label();
		messagePanel.add(messageBox);
		add(messagePanel, BorderLayout.SOUTH);

		JPanel filesListPanel = new JPanel();
		messagePanel.setBackground(new Color(132, 132, 255));
		listModel = new DefaultListModel();
		loadImages();
		filesList = new JList(listModel);
		filesList.addListSelectionListener(this);
		if (listModel.size() > 0)
			filesList.setSelectedIndex(0);
		filesListPanel.add(filesList);
		add(new JScrollPane(filesListPanel), BorderLayout.NORTH);

		//resize(320, 200);
	}

	public void valueChanged(ListSelectionEvent e) {
		JList source = (JList)e.getSource();
		DefaultListModel model = (DefaultListModel)source.getModel();
		if (source.getSelectedIndex() > -1) {
			String imageName = (String)source.getSelectedValue();
			image = (BufferedImage)images.get(imageName);
			messageBox.setText(imageName);
			messageBox.validate();
			repaint();
		}
	}

	private void loadImages() {
		maxWidth = -1;
		maxHeight = -1;
		boolean isFirst = true;
		BufferedReader reader = null;
		try {
			InputStream is = this.getClass().getResourceAsStream(PHOTO_FILES_LIST);
			InputStreamReader isr = new InputStreamReader(is);
			reader = new BufferedReader(isr);
			String line = "";
			int count = 0;
			while ((line = reader.readLine()) != null) {
				if (isFirst) {
					count = Integer.parseInt(line);
					isFirst = false;
				} else {
					URL url = this.getClass().getResource(line);
					image = ImageIO.read(url);
					maxWidth = (image.getWidth() > maxWidth ? image.getWidth() : maxWidth);
					maxHeight = (image.getHeight() > maxWidth ? image.getHeight() : maxHeight);
					images.put(line, image);
					listModel.addElement(line);
				}
			}
		} catch (IOException e) {
			messageBox.setText("Impossible de charger les images !");
		} finally {
			try {
				reader.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

}



Un gros poutou à Choubaka en passant... quelqu'un pour qui le 11 septembre 2001 ne signifie pas la même chose que pour le reste du monde ;-) (private joke)
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
20 janv. 2006 à 11:50
lol
0
Bonjour,
j'aimerai avoir la class qui permet d'insérer un fichier dans un JTable
0
Karim25 Messages postés 1 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 8 mars 2008
8 mars 2008 à 16:10
Salut
je suis en trains de faire petit projet en java et j'ai des questions
je voudrais bien savoir comment je peux lire un textfichier avec un imputsteam et dans un Hashmap donner
while (line=f.readline())!=null) c'est ok
System.out.println(text) ne doit pas être ecrire
je suis un etudiant en Allemagne je m'excuse si ma question n'est pas bien detaillé
merci
0