Итерация по массиву файлов - PullRequest
2 голосов
/ 26 мая 2019

Я пишу программу, которая отображает некоторые из моих написанных стихов в 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 и даже не запускается ...

1 Ответ

1 голос
/ 26 мая 2019

Это работает, когда я читаю один файл, но всякий раз, когда я создаю экземпляр файла [] это дает мне исключение NullPointerException и даже не запускается ...

Вот пример создания массива с пятью слотами (0 -> 4):

FileReader[] file = new FileReader[4];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...