我正在尝试将此数组更改为 arrayList。它读取线的两点的 x 和 y 坐标以及线的颜色。稍后我将使用 equals() 方法来确定两行是否相等,并且只添加第一行。现在我只是想将文件放入arrayList。如果我只使用数组 Line[]lines,程序运行良好,但是当我像这样运行它时,使用 arrayList,它只是一个空白面板,这是第二个循环用于导致 arrayList 中没有任何内容。
我的文本文件如下所示:
3
482 22 335 492 red
482 22 335 492 blue
482 22 335 492 green
//Line[] lines;
ArrayList<Line> lines;
Scanner reader;
int numLines = reader.nextInt();
//lines = new Line[numLines];
ArrayList<Line>lines = new ArrayList<Line>();
while( reader.hasNext() ) {
for( int i = 0; i < numLines; i++ ) {
int x = reader.nextInt();
int y = reader.nextInt();
Point beg = new Point(x,y);
x = reader.nextInt();
y = reader.nextInt();
Point end = new Point(x,y);
String color = reader.next();
Line l = new Line( beg, end, color );
lines.add(l);
//lines[i] = l;
使用这个循环,我试图将每一行添加到 arrayList
if( lines != null ) {
for( Line l: lines ) {
int x1 = l.getBeg().getX();
int y1 = l.getBeg().getY();
int x2 = l.getEnd().getX();
int y2 = l.getEnd().getY();
g.setColor(l.color);
g.drawLine(x1, y1, x2, y2);
System.out.println(l);
这是绘制组件,如果列表为空,则面板为空。
我的问题是我是否正确使用了第一个循环,或者我需要做些什么才能让它与 arrayList 一起工作?