Почему переменная, объявленная вне paint(), не распознается внутри paint()?

Почему arraylist.get(0) сообщает об ошибке при запуске. Я не получаю ошибку при компиляции, но когда я запускаю ее, она работает отлично, но она дает:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

и программа сообщает, что ошибка находится в строке, где arraylist.get(0). Я объявлял arraylist вне paint(), и он дает ошибку выше. Но когда я объявляю его внутри paint(), сообщение об ошибке не сообщается. Тем не менее, я хочу объявить arraylist снаружи.

Как я могу объявить arraylist вне paint() ;?

здесь мой код ниже:

class Game{
int x=0, y=250;
String line;
String[] list;
static ArrayList<string> arraylist;
public static void main(String[] args){ Game game= new Game(); game.read();
}
public void read(){
arraylist= new ArrayList<string>(); try{ BufferedReader br = new BufferedReader(new FileReader("dictionary.txt")); line= br.readLine(); list= line.split(" "); for(int i=0; i</string></string>
<p> обновить: отредактировал код</p>
1 ответ

Paint вызывается в UI Thread несколько раз, прежде чем что-либо добавит в arraylist. Вы можете просто проверить, не является ли оно нулевым и иметь в списке один элемент внутри него.

licensed under cc by-sa 3.0 with attribution.