我尝试绘制一些数字,如下所示(我没有包括涉及主方法的其他类)...它没有重新绘制的问题我只得到三条粗线作为输出但它应该绘制一个椭圆形和两个矩形,因此当while循环工作时它们在框架中移动......
package shapes;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class GamePanel extends JPanel {
int n1=0;
int n2=0;
int n3=0;
@Override
public void paintComponent(Graphics g) {
do {
// super.paintComponent(g);
g.drawRect(n1++, 33, 54, 84);
g.setColor(Color.BLUE);
g.fillRect(100, n2++, 56, 97);
// g.setColor(Color.BLUE);
g.drawOval(44, n3++, 44, 66);
} while (n1<=500 && n2<=500 && n3<=500);
n1++;
n2++;
n3++;
repaint();
}
}
如何纠正代码使其重新绘制每个循环的数字,因此它不会显示三条粗线作为输出??? (我希望包括do命令).. 感谢
答案 0 :(得分:1)
super.paintComponent
(而不是在循环中); repaint
,这可能会设置无限循环的重绘,这可能会消耗所有CPU周期; Timer
代替生成预定更新和动画