Почему переменная, объявленная вне 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.