Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    137

    leggere file nella JTextArea

    Come posso aprire un file .txt e il contenuto inserirlo in una JTextArea?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: leggere file nella JTextArea

    Originariamente inviato da jalexb
    Come posso aprire un file .txt e il contenuto inserirlo in una JTextArea?
    Una possibilità è usare il metodo read() di JTextComponent.

    Nulla ti vieta ovviamente di leggere tu il file "a caratteri" (blocchi di caratteri, meglio), buttare tutto in un StringBuffer e alla fine ottenere un String da passare a JTextArea.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    137
    Non riesco a inserire il file letto tramite il JFileChooser nella JTextArea....potete dirmi che c'è di sbagliato? Come posso fare?




    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;


    public class InsertImage extends JFrame implements ActionListener
    {

    protected JToolBar toolBar;
    protected JButton btnapri;
    protected JButton btnsalva;
    protected ImageIcon imgapri;
    protected ImageIcon imgsalva;
    protected ImageIcon imgchiudi;
    protected JMenuItem chiudi;
    protected JMenuItem salva;
    protected JMenuItem apri;
    protected JFileChooser fc;
    protected Reader in ;
    protected JTextArea ta;
    protected JOptionPane option;


    public InsertImage()
    {
    super("MenuFinestra");
    Container c = getContentPane();
    c.setLayout(new BorderLayout());
    c.setPreferredSize(new java.awt.Dimension(292, 205));
    imgapri = new ImageIcon("H:\\Documents and Settings\\alex\\Documenti\\Corso Accenture\\java\\InsertImage\\src\\image\\apri.jpg ");
    imgsalva = new ImageIcon("H:\\Documents and Settings\\alex\\Documenti\\Corso Accenture\\java\\InsertImage\\src\\image\\salva.jp g");
    imgchiudi = new ImageIcon("H:\\Documents and Settings\\alex\\Documenti\\Corso Accenture\\java\\InsertImage\\src\\image\\close.jp g");
    btnapri = new JButton(imgapri);
    btnsalva = new JButton(imgsalva);
    toolBar = new JToolBar();
    JMenuBar mb = createMenubar();
    c.add(createPanel());
    getContentPane().add(createPanel(), BorderLayout.NORTH);
    toolBar.add(btnapri);
    toolBar.add(btnsalva);
    c.add(toolBar,BorderLayout.NORTH);
    setVisible(true);
    setSize(300,300);
    chiudi.addActionListener(this);
    btnapri.addActionListener(this);
    apri.addActionListener(this);
    btnapri.setToolTipText("Apri"); /**Visualizza una piccola didascalia del bottone (come "ALT" in HTML)**/
    btnsalva.setToolTipText("salva");
    }

    /**metodo che crea l'oggetto Menu **/
    public JMenuBar createMenubar()
    {
    JMenuBar menuBar = new JMenuBar(); /**crea la Barra del Menu'**/
    JMenu menu = new JMenu("Menu"); /**crea il menu**/
    apri = new JMenuItem("Apri",imgapri); /**crea le voci del menu**/
    salva = new JMenuItem("Salva",imgsalva);
    chiudi = new JMenuItem("Chiudi",imgchiudi);
    menu.add(apri); /**aggiunge le voci create al menu**/
    menu.add(salva);
    menu.add(chiudi);
    setJMenuBar(menuBar);
    menuBar.add(menu);

    return menuBar;
    }
    /**metodo che crea il pannello**/
    public JPanel createPanel()
    {
    JPanel panel1 = new JPanel();
    panel1.setBackground(Color.black);
    panel1.add(createScroll());

    return panel1;
    }
    /**metodo che crea la TextArea**/
    public JTextArea createTextArea()
    {
    ta = new JTextArea();
    ta.setPreferredSize(new java.awt.Dimension(300,200));
    //ta.enable(false);

    return ta;
    }
    /**metodo che crea uno ScrollPane per la TextArea**/
    public JScrollPane createScroll()
    {
    JScrollPane js = new JScrollPane();
    js.setVisible(true);
    js.setPreferredSize(new java.awt.Dimension(300,200));
    js.setViewportView(createTextArea());

    return js;
    }
    /**Gestione degli eventi**/
    public void actionPerformed(ActionEvent e)
    {
    Object source = e.getSource();

    if(source == chiudi)
    {
    this.dispose();

    }
    else if(source == apri || source == btnapri)
    {
    fc = new JFileChooser();
    int r = fc.showOpenDialog(this);
    File f = fc.getSelectedFile();
    try
    {
    in = new FileReader(f);
    ta.read(in, null);
    }
    catch(IOException s)
    {
    option = new JOptionPane();
    option.showMessageDialog(null,"Errore nell'apertura del file. Il programmma verrà chiuso");
    }


    }
    }
    }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jalexb
    Non riesco a inserire il file letto tramite il JFileChooser nella JTextArea....potete dirmi che c'è di sbagliato? Come posso fare?
    Innanzitutto la parte dove fai selezionare il file e poi lo apri e passi il Reader alla text area mi sembra corretta (non hai testato il valore di ritorno di showOpenDialog ma non è quello il grosso problema).

    Dici: "non riesco a inserire il file", cioè ti dà una eccezione? O nessuna eccezione ma non carica nulla? Insomma ... quale è il sintomo che noti???


    Già che ci sono ti segnalo alcune cose:
    - Mettere nel sorgente dei path assoluti sul file-system generalmente è una pessima idea. Se li hai messi temporaneamente giusto solo per prova allora ok, è un conto. Ma in generale è poi bene che non fai più queste cose!
    - showMessageDialog() è un metodo statico, non serve istanziare un JOptionPane!!!! Basta invocare: JOptionPane.showMessageDialog(.....);
    - Quando si hanno più componenti che fanno la stessa identica operazione (es. un menù "Apri" e un pulsante "Apri"), una soluzione molto comoda e pratica è usare le Action (si estende AbstractAction).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    137
    Grazie dei consigli ke mi hai dato.....il problema è che nnon carica niente, nn riesco a farlo stampare nella TextArea....cioè se faccio un setTitle(f.getName) e lo stampo nella console, mi stampa il nome del file, quindi presumo lo carichi....il problema sta nella TextArea, nn riesco a caricarci il contenuto del file....

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 © 2025 vBulletin Solutions, Inc. All rights reserved.