Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Inserire file csv in Java

    Salve a tutti sono alle prime armi di Java e sto cercando di creare un progetto, che leggendo un file csv (diviso dal punto e virgola) mi incolonna i diversi i campi in una TextArea. Per esempio nel File csv è contenuto
    Nome;Quantita';CostoLatte;3;0,8

    Io devo far comparire nella TextArea
    Nome Quantità Costo
    Latte 3 0,8

    Grazie per l'aiuto.

    codice:
    import java.io.*;
    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.*;
    import java.util.Scanner;
    
    
    public class Scontrino extends JFrame implements ActionListener
    {
        private JButton b = new JButton("Aggiungi");
        TextArea area = new TextArea();
        private JButton chiudi = new JButton("Esci dal Programma");
        
        public Scontrino()
        {
            //TextArea
            setLayout(null);
            this.add(area);
            area.setBounds(10,10,300,260);
            area.setEditable(false);
            
            
            //Pulante
            this.add(b);
            b.setLocation(340,40);
            b.setSize(100,60);
            b.addActionListener(this);
            b.setVisible(true);
            
            //Pulsante chiudi
            this.add(chiudi);
            chiudi.setBounds(80,500,300,50);
            chiudi.addActionListener(this);
            chiudi.setVisible(true);
            
            //Finestra
            setTitle("Esercizio Bello Bello !");
            setLocation(390,80);
            setSize(600,600);
            setVisible(true);
            
            //Finestra
            setTitle("Scontrino");
            setLocation(390,80);
            setSize(600,600);
            setVisible(true);
            
        }
        
        public static void main(String args[])
        {
            new Scontrino();
        }
        
        public void actionPerformed(ActionEvent e) 
       {
          try
          {
              if(e.getSource() == b)
              {
                   BufferedReader filebuf = new BufferedReader(new FileReader("Produttore.csv"));
                   String nextStr;
                   nextStr = filebuf.readLine();                
                    
                   while(nextStr!= null)
                   {
                       area.append(nextStr);
                       area.append("\n");
                       nextStr = filebuf.readLine();
                   }
                   
                   filebuf.close();
                   
               }
          }
           
          catch(IOException ex)
          {
              ex.printStackTrace();
          }
    
    
            
          if(e.getSource() == chiudi)
          {
              dispose();
          }
       }
    }

    Qui il codice.
    ps.Deve succedere al clik del pulsante Aggiungi
    Ultima modifica di LeleFT; 16-03-2017 a 13:54 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Sposto nel forum dedicato a Java.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da Mikele99 Visualizza il messaggio
    sto cercando di creare un progetto, che leggendo un file csv (diviso dal punto e virgola) mi incolonna i diversi i campi in una TextArea. Per esempio nel File csv è contenuto
    Nome;Quantita';CostoLatte;3;0,8

    Io devo far comparire nella TextArea
    Nome Quantità Costo
    Latte 3 0,8
    Per estrarre le diverse parti di una singola linea puoi usare il metodo split di String (passando come separatore ";").
    Ottieni un array di stringhe che poi puoi utilizzare come vuoi.
    Per incolonnare i campi in una textarea cosa intendi? Vorresti che vengano aggiunti spazi e tabulazioni in modo da allineare perfettamente le colonne (non è banale ma dovrebbero esserci soluzioni già implementate) ?

    O ti basta solo che le righe siano una sotto all'altra con i valori divisi da una tabulazione o spazio (in questo caso potrebbe non essere necessario lo split ma basterebbe sostituire nella linea letta il punto e virgola con il carattere di separazione).

    Comunque per incolonnare i dati e in genere mantenerli ordinati il componente più adatto è la JTable. Tra l'altro con una JTable mantieni facilmente la possibilità di filtrare/ordinare i dati a piacimento come faresti con un programma tipo Excel.

    Se sei interessato trovi qui il tutorial ufficiale che ne spiega l'utilizzo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.