如何在 Java 中的图形中的 2 个点之间画一条线?
How can I draw a line between 2 points in Graphics in Java?
我有这段代码,lista 是点的 ArrayList,每次界面用户拖动鼠标时我都会将其添加到列表中。但是当我这样做时,我得到一个错误:“AWT-EventQueue-0”java.lang.IndexOutOfBoundsException:索引 -1 超出长度 3“
for(int i=0;i<lista.size();i++){
g.fillOval(lista.get(i).x,lista.get(i).y,radio*2,radio*2);
if(lista.size()>1){
g.drawLine(lista.get(i-1).x,lista.get(i-1).y,lista.get(i-2).x,lista.get(i-2).y);
}
}
我该如何解决这个问题?
在您通过此循环的第一次迭代中,i-1 将为 -1(而 i-2 将为 -2)这就是您的问题所在
for(int i=0;i<lista.size();i++){
g.fillOval(lista.get(i).x,lista.get(i).y,radio*2,radio*2);
if(lista.size()>1){
g.drawLine(lista.get(i-1).x,lista.get(i-1).y,lista.get(i-2).x,lista.get(i-2).y);
}
}
我有这段代码,lista 是点的 ArrayList,每次界面用户拖动鼠标时我都会将其添加到列表中。但是当我这样做时,我得到一个错误:“AWT-EventQueue-0”java.lang.IndexOutOfBoundsException:索引 -1 超出长度 3“
for(int i=0;i<lista.size();i++){
g.fillOval(lista.get(i).x,lista.get(i).y,radio*2,radio*2);
if(lista.size()>1){
g.drawLine(lista.get(i-1).x,lista.get(i-1).y,lista.get(i-2).x,lista.get(i-2).y);
}
}
我该如何解决这个问题?
在您通过此循环的第一次迭代中,i-1 将为 -1(而 i-2 将为 -2)这就是您的问题所在
for(int i=0;i<lista.size();i++){
g.fillOval(lista.get(i).x,lista.get(i).y,radio*2,radio*2);
if(lista.size()>1){
g.drawLine(lista.get(i-1).x,lista.get(i-1).y,lista.get(i-2).x,lista.get(i-2).y);
}
}