2012-04-02 3 views
0

Я пытался часами пытаться загрузить содержимое текстового файла в JTextArea. Я могу загрузить текст в консоль, но не в JTextArea. Я не знаю, что я делаю неправильно. Любая помощь приветствуется!Загрузка текстового файла в JtextArea

Класс для программы

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


public class LoadClass extends JPanel 
{ 
    JPanel cards; 
    private JPanel card1; 
    private JTextArea textarea1; 
    private int currentCard = 1; 
    private JFileChooser fc; 

    public LoadClass() 
    { 
     Font mono = new Font("Monospaced", Font.PLAIN, 12); 

     textarea1 = new JTextArea(); 
     textarea1.setFont(mono); 



     card1 = new JPanel(); 
     card1.add(textarea1); 




     cards = new JPanel(new CardLayout()); 
     cards.add(card1, "1"); 


     add(cards, BorderLayout.CENTER); 



     setBorder(BorderFactory.createTitledBorder("Animation here")); 
     setFont(mono); 
    } 

    public void Open() 
    { 
     textarea1 = new JTextArea(); 


     JFileChooser chooser = new JFileChooser(); 
     int actionDialog = chooser.showOpenDialog(this); 
     if (actionDialog == JFileChooser.APPROVE_OPTION) 
     { 
      File fileName = new File(chooser.getSelectedFile() + ""); 
      if(fileName == null) 
       return; 
      if(fileName.exists()) 
      { 
       actionDialog = JOptionPane.showConfirmDialog(this, 
            "Replace existing file?"); 
       if (actionDialog == JOptionPane.NO_OPTION) 
        return; 
      } 
      try 
      { 

       String strLine; 
       File f = chooser.getSelectedFile(); 
       BufferedReader br = new BufferedReader(new FileReader(f)); 

       while((strLine = br.readLine()) != null) 
       { 
        textarea1.append(strLine + "\n"); 

        System.out.println(strLine); 

       } 
      } 
      catch(Exception e) 
      { 
       System.err.println("Error: " + e.getMessage()); 
      } 
     } 
    } 

} 

Главная Программа

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

public class LoadMain extends JFrame 
{ 

    private LoadClass canvas; 

    private JPanel buttonPanel; 
    private JButton btnOne; 



    public LoadMain() 
    { 

     super("Ascii Art Program"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     setLayout(new BorderLayout()); 
     canvas = new LoadClass(); 

     buildButtonPanel(); 

     add(buttonPanel, BorderLayout.SOUTH); 
     add(canvas, BorderLayout.CENTER); 

     pack(); 
     setSize(800, 800); 
     setVisible(true); 

    } 
    private void buildButtonPanel() 
    { 
     buttonPanel = new JPanel(); 

     btnOne = new JButton("Load"); 


     buttonPanel.add(btnOne); 



     btnOne.addActionListener(new btnOneListener()); 


    } 
    private class btnOneListener implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      if (e.getSource() == btnOne) 
      { 
       canvas.Open(); 
      } 
     } 
    } 


    public static void main(String[] args) 
    { 
     new LoadMain(); 
    } 

} 
+0

Пробовал хранить строки в строке, а затем textArea.setText()? – Giannis

+0

1) Для лучшей помощи раньше, отправьте сообщение [SSCCE] (http://sscce.org/). 2) Изучите общие [Соглашения о присвоении имен Java] (http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307) (в частности, используемый для имен) для класс, метод и атрибуты и использовать его последовательно. –

+0

Это домашнее задание? – Peter

ответ

1
public void Open() 
{ 
    textarea1 = new JTextArea(); 

Изменить что:

public void Open() 
{ 
    //textarea1 = new JTextArea(); // or remove completely 

Второе поле, созданное, путает вещи.

+0

Ты спасатель! – FireStorm

Смежные вопросы