Come posso aprire un file .txt e il contenuto inserirlo in una JTextArea?
Grazie
Come posso aprire un file .txt e il contenuto inserirlo in una JTextArea?
Grazie
Una possibilità è usare il metodo read() di JTextComponent.Originariamente inviato da jalexb
Come posso aprire un file .txt e il contenuto inserirlo in una JTextArea?
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.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
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");
}
}
}
}
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).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?
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.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
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....