Bonjour ! Je suis en train de faire un petit programme en Java qui permet de sélectionner un fichier (*.txt pour commencer) et j'aimerais ensuite exploiter ce document.

L'utilisateur choisi un fichier txt spécifique de son ordi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
1 PAQUET DE PATES
1 PAQUET DE RIZ
2 PAQUETS DE PUREE
Et le programme Java doit remplir des textfield (ou textarea) suite à ce document.
Par exemple j'aimerais 6 textfield (ou textarea) : 3 qui seront rempli par la quantité et 3 autres pour la désignation du produit.

Je voudrais en fait afficher dans un textfield (ou textarea) seulement une partie du fichier texte et non tout son contenu.

Voici mon programme pour l'instant : Une MenuBar est créer avec un bouton pour sélectionner un fichier et l'ouvrir, un autre bouton pour fermer le programme et au centre de ma fenetre un textfield pour lire le contenu de mon fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
 
package jfilechooserdemo.resources;
 
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFileChooser;
 
public class JFileChooserDemo extends javax.swing.JFrame {
 
    public JFileChooserDemo() {
        initComponents();
    }
 
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
 
        filechooser = new javax.swing.JFileChooser();
        textfield = new javax.swing.JTextField();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        Open = new javax.swing.JMenuItem();
        Exit = new javax.swing.JMenuItem();
 
        filechooser.setDialogTitle("Choississez le fichier à ouvrir");
        filechooser.setFileFilter(new MyCustomFilter());
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Lecture de fichier");
 
        jMenu1.setText("Fichier");
 
        Open.setText("Ouvrir");
        Open.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                OpenActionPerformed(evt);
            }
        });
        jMenu1.add(Open);
 
        Exit.setText("Fermer");
        Exit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ExitActionPerformed(evt);
            }
        });
        jMenu1.add(Exit);
 
        jMenuBar1.add(jMenu1);
 
        setJMenuBar(jMenuBar1);
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
                .addContainerGap())
        );
 
        pack();
    }// </editor-fold>                        
 
    private void OpenActionPerformed(java.awt.event.ActionEvent evt) {                                     
        int returnVal = filechooser.showOpenDialog(this);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = filechooser.getSelectedFile();
            try {
                // What to do with the file, e.g. display it in a TextArea
                textfield.read(new FileReader(file.getAbsolutePath()), null);
            } catch (IOException ex) {
                System.out.println("problem accessing file" + file.getAbsolutePath());
            }
        } else {
            System.out.println("L'utilisateur à arreter l'explorateur Windows");
        }
    }                                    
 
    private void ExitActionPerformed(java.awt.event.ActionEvent evt) {                                     
        System.exit(0);
    }                                    
 
    class MyCustomFilter extends javax.swing.filechooser.FileFilter {
        @Override
        public boolean accept(File file) {
            // Allow only directories, or files with ".txt" extension
            return file.isDirectory() || file.getAbsolutePath().endsWith(".txt");
        }
        @Override
        public String getDescription() {
            // This description will be displayed in the dialog,
            // hard-coded = ugly, should be done via I18N
            return "Fichiers txt";
        }
    } 
 
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(JFileChooserDemo.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
 
        //</editor-fold>
 
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(() -> {
            new JFileChooserDemo().setVisible(true);
        });
    }
 
    // Variables declaration - do not modify                     
    private javax.swing.JMenuItem Exit;
    private javax.swing.JMenuItem Open;
    private javax.swing.JFileChooser filechooser;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JTextField textfield;
    // End of variables declaration                   
}
Pour information, je programme avec Netbeans.

Merci beaucoup !

[EDIT] J'arrive très bien à lire un fichier texte grâce à FileInputStream et un scanner. J'arrive très bien à lire avec cette méthode différentes lignes mais avec la méthode FileChooser ça m'as l'air bien plus compliqué ! [/EDIT]