这段代码有一个简单的问题:
@Overridepublic void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; frog = new Frog();// <-- !!!!! // Frog graphics g2.setColor(Color.BLACK); g2.drawPolygon(frog); g2.setColor(new Color(0,150,15)); g2.fillPolygon(frog);}
每次绘制青蛙时,标记线都会用新的实例覆盖青蛙,从而将其重置为原始点。除了明显的问题(这是导致异常行为的原因)外, 切勿
在
paintComponent(...)-method中进行任何不必要的计算。任何预计算,对象生成等都应在
paintComponent!!!
之外进行!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)