В OpenFile () внутри блока try вы должны удалить «Сканер» в
Scanner x=new Scanner(file);
и оставить его как
x=new Scanner(file);
Объяснение:
В вашем коде, когда вы пишете
Scanner x=new Scanner(file);
внутри блока try, вы создаете новую переменную, но с тем же именем, что и то, которое вы объявили в началекласс в
private Scanner x;
Теперь у вас будет две переменные сканера с именем 'x'.Внутри оператора try вы инициализируете тот, что находится внутри этого блока, но он существует только там, поэтому, как только вы выходите из блока try, он уничтожается.
Теперь вернемся к функции ReadFile (), которую вы вызываете x .hasNextLine (), но этот 'x' - это тот, который вы объявили в начале, а не тот, что внутри оператора try, поэтому он все еще неинициализирован.