2012-04-02 47 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 

作成された2番目のフィールドは混乱するものです。

+0

あなたは命の恩人です! – FireStorm

関連する問題