java - 如何循环打印形状?
问题描述
我正在尝试循环打印形状,但是当我运行程序时没有任何显示。我正在使用我之前制作的自定义类中的形状。我使用鼠标单击来获取鼠标的每一端(在不同的部分),这是有效的。
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
for (int i = 0; i<howMany;i++){
if (shapes[i] instanceof Line){
Line l = (Line) shapes[i];
g.drawLine((int)l.start.getX(),(int) l.start.getY(),(int) l.end.getX(),(int) l.end.getY());
repaint();
}
}
}
解决方案
删除重绘请求并仔细检查是否shapes
为空并且shapes[i]
实际上是Line
public void paintComponent(Graphics g){
super.paintComponent(g);
for (int i = 0; i<howMany;i++){
if (shapes[i] instanceof Line){
Line l = (Line) shapes[i];
g.drawLine((int)l.start.getX(),(int) l.start.getY(),(int) l.end.getX(),(int) l.end.getY());
// repaint(); remove that
}
}
}