0

我正在尝试打开一个文件并将其添加到文本区域,但文本文件无法工作,不确定究竟是什么不起作用,但我知道编译器到达了我实现读取文件代码的函数/方法。这是代码

public class PictureAndButton extends JFrame implements ActionListener
{

private JMenuItem menuOptionOne = new JMenuItem("Lägg till text", KeyEvent.VK_L);
private JTextField textFalt  = new JTextField();


public PictureAndButton()
{
menuInfo.add(menuOptionOne);
menuOptionOne.addActionListener(this);
textField.addActionListener(this);    
setSize(350, 150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);       
}

public void actionPerformed(ActionEvent e)
{
  if(e.getSource() == menuOptionOne)
    {
        readInFile(textField.getText());
    }
   }    

private void readInFile(String hej) 
{
   try
   {
       BufferedReader inFile = new BufferedReader(new FileReader(hej));  
       while(true)
       {
           String rad = inFile.readLine();
          if(rad == null)
           break;
           textArea.append(rad);       

       }
   }
   catch(IOException e){}
}

public static void main(String[] args)
    {
        PictureAndButton peanutButter = new PictureAndButton();
    }

}

我在 Eclipse 上运行它并且我没有收到任何错误,文本字段中的输入文本根本没有改变。没有任何内容添加到文本区域。真的需要一些帮助

4

2 回答 2

2

我正在尝试打开一个文件并将其添加到 textarea,..

改为使用JTextComponent.read(Reader,Object)

例如

textArea.read(new FileReader(hej), hej);
于 2012-06-05T08:24:01.467 回答
1

添加一些 System.out.println(); 调试,例如:

if(e.getSource() == menuOptionOne)
{
    System.out.println("Trying to load file: "+textField.getText());
    readInFile(textField.getText());
}

还有更多,在 catch 中使用 try with 和 message 来知道什么时候失败了。

 try
 {
   BufferedReader inFile = new BufferedReader(new FileReader(hej));  
   while(true)
   {
       String rad = inFile.readLine();
      if(rad == null)
       break;
       textArea.append(rad);       

   }
} catch(IOException e){ System.out.println("Problem on loading file .Because: "e.getMessage();
     }
于 2012-06-05T08:29:53.120 回答