2012-06-05 67 views
0

我想打开一个文件并将其添加到文本区,但文本文件不会工作不知道什么是不工作,但我知道编译器到达函数/方法,我实现读取文件代码。这里是我运行它基于Eclipse代码Java输入和文件读取器

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(); 
    } 

}

,我没有得到任何错误,在文本框输入文本犯规根本改变。没有东西被添加到文本区域。真的需要这个

+0

1.)你有一个无限循环。 2.)你不要在代码中的任何地方调用readInFile()。 – Polygnome

+0

对不起。我输入了代码的错误部分 –

+0

几个建议;当你给出一个代码示例时,它通常有助于将你的变量命名为能够提供他们的英语的线索。例如改变:rad - > line,hej - > file,“lägguntil text” - >“add text”可以帮助人们理解你想要做的事情,并最终帮助你获得有用的答案。 – posdef

回答

2

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

使用JTextComponent.read(Reader,Object),而不是一些帮助。

例如

textArea.read(new FileReader(hej), hej); 
1

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

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

多,使用与尝试和消息渔获里面知道什么事情会失败。

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(); 
    } 
+0

这不是一个答案,而是一条评论... – posdef

+0

编辑不会使它成为答案。这将是一个很好的评论。 –

+0

@Claudiu C我收到来自构造函数的消息,但没有例外..? –