【发布时间】:2019-05-26 20:06:45
【问题描述】:
我正在编写一个程序,它将我写的一些诗显示到JTextArea 中,每当我按下JButton“下一步”时,它应该将我的另一首诗读入JTextArea。
但是,我只能在删除 filearray 并仅读取单个文件时这样做。
创建一个文件数组并尝试在每次单击下一步时调用number++ 进行迭代。我也过滤掉了一些不相关的代码。
public class PoemWindow extends JFrame implements ActionListener
{
private int n=0;
BufferedReader br;
JTextArea textAreaOne;
FileReader file[];
}
public PoemWindow() throws IOException{
file[0] = new FileReader("C:/Poems/Freedom.txt");
file[1] = new FileReader("C:/Poems/Masturbation.txt");
file[2] = new FileReader("C:/Poems/Life.txt");
file[3] = new FileReader("C:/Poems/Loneliness.txt");
add(textAreaOne)
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==nextButton) {
while(n<=4) {
try {
br = new BufferedReader(file[n]);
textAreaOne.read(br,null);
n++;
textAreaOne.requestFocus();
} catch(Exception b) {
System.out.println("This is an error");
}
}
}
当我读取单个文件时它可以工作,但每当我实例化一个文件时[]
它给了我一个NullPointerException,它甚至不会运行......
【问题讨论】:
-
虽然您的问题是数组初始化,但您还需要记住数组中的最后一个索引比元素数少一 -> 所以如果您有 4 个元素的数组,最后一个索引是 3(如它从 0 开始)所以你的 while 循环应该是
while (n<4)
标签: java arrays textarea filereader