Remplir une jlist
koukou9018
-
Elmuchacho99 -
Elmuchacho99 -
Bonjour,
je veut remplir une jlist avec le contenu d'un fichier lors du clic sur un bouton "importer"
j'ai essayer avec ce code mais j'ai pas arriver à trouver l'instruction dans la boucle while qui remplir la jlist à partir du fichier
private void jButtonImport(ActionEvent e)
{
String fi = "resultat.txt";
try
{
InputStream ips=new FileInputStream(fi);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String ligne;
while ((ligne=br.readLine())!=null){
}
br.close();
}
catch (Exception err){
System.out.println(err.toString());
}
}
je veut remplir une jlist avec le contenu d'un fichier lors du clic sur un bouton "importer"
j'ai essayer avec ce code mais j'ai pas arriver à trouver l'instruction dans la boucle while qui remplir la jlist à partir du fichier
private void jButtonImport(ActionEvent e)
{
String fi = "resultat.txt";
try
{
InputStream ips=new FileInputStream(fi);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String ligne;
while ((ligne=br.readLine())!=null){
}
br.close();
}
catch (Exception err){
System.out.println(err.toString());
}
}
A voir également:
- Jlist java
- Jeux java itel touche - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux gratuits sur mobile ✓ - Forum Logiciels
- Java apk - Télécharger - Langages
- Jeux java itel 5360 - Forum Mobile
1 réponse
Déjà, tu peux simplifier la lecture de ton fichier avec la classe Scanner. Ensuite, pour pouvoir accéder aux données, il faut appeler le ListModel, qui sera en général un DefaultListModel.
protected final JList list;
public Constructeur()
{
list = new JList(new DefaultListModel<String>());
}
String fi = "resultat.txt";
private void jButtonImport(ActionEvent e)
{
DefaultListModel<String> model = (DefaultListModel<String>) list.getModel();
Scanner sc = new Scanner(fi);
while (sc.hasNextLine())
model.add(sc.nextLine());
sc.close();
list.setModel(model);
}
Ici tu passes directement du fichier à la JList, pas besoin d'autre chose.
Cependant, j'avoue que je n'avais pas vérifié le code et qu'il y avait quelques erreurs, mais le principe était quand même bon ! Voici un exemple complet :
import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JList; public class Test extends JFrame { private static final long serialVersionUID = 1L; protected final JList list; protected final JButton button; public Test() { setSize(500,500); setLayout(new FlowLayout()); list = new JList(new DefaultListModel()); add(list); button = new JButton("remplir"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { jButtonImport(e); } catch (FileNotFoundException e1) { e1.printStackTrace(); } } }); add(button); setVisible(true); setDefaultCloseOperation(DISPOSE_ON_CLOSE); } String fi = "/home/KX/Bureau/data.txt"; private void jButtonImport(ActionEvent e) throws FileNotFoundException { DefaultListModel model = (DefaultListModel) list.getModel(); Scanner sc = new Scanner(new File(fi)); while (sc.hasNextLine()) model.addElement(sc.nextLine()); sc.close(); list.setModel(model); } public static void main(String...args) { new Test(); } }PS. Il fallait bien sûr changer String fi, pour correspondre à ton fichier.