为什么arraylist.get(0)
在运行时报告错误。编译时没有错误,但是当我运行它时,它运行得很完美,但它给出了:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
并且程序报告错误位于实现arraylist.get(0)
的行中。我在paint()之外声明了arraylist
并且它给出了上面的错误。但是当我在paint()中声明它时,没有报告错误。但是,我想在外面声明arraylist
。
如何在paint();?
之外声明arraylist
这是我的代码:
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<list.length ;i++)
arraylist.add(list[i]);
Collections.shuffle(arraylist);
}
catch(Exception e){}
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2= (Graphics2D)g;
Font font= new Font("Impact",Font.PLAIN,10);
g2.setFont(font);
g2.drawString(arraylist.get(0),x,y);
try{
Thread.sleep(50);
}
catch(Exception e){}
repaint();
}
}
更新:编辑了代码
答案 0 :(得分:0)
在添加到arraylist
的任何内容之前,在UI线程中多次调用Paint。
你可以简单地检查它是否不为空,并在列表中列出一个项目。