Java中(Graphics g)绘图方面的知识,求助

publicclassTestextendsJFrame{gamePanelgamep=null;publicstaticvoidmain(String[]args){T... public class Test extends JFrame{
gamePanel gamep=null;
public static void main(String[] args){
Test demo2_4=new Test();
}

public Test(){
gamep=new gamePanel();
this.add(gamep);

//设置窗体属性
this.setSize(500,500);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//定义panel //继承接口KEYListener
class gamePanel extends JPanel{
public void paint(Graphics g){
super.paint(g);
setSize(480,460);
System.out.print("方向");
g.drawOval(10, 10, 20, 20);
System.out.println("次数");
}
}
为什么 g.drawOval(10, 10, 20, 20);这句话被执行了3次?求助
展开
 我来答
问题终结机
2014-09-27 · 超过12用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:19.7万
展开全部
Awt被设计为假定图象可能是从缓慢的网络连接上得来的。java创建了一个新的线程来加载该文件,然后在文件实际加载完之前便返回。
在你的paint()中,因为图片尚未加载,所以paint一次次地尝试调用绘制图片。在我的机器里测试你这段程序paint了两次。。。
吹阴风点鬼火
2014-09-27 · TA获得超过211个赞
知道小有建树答主
回答量:474
采纳率:100%
帮助的人:301万
展开全部
好像是调了一个repaint方法,具体怎么回事我也忘了
追问
我的this.repaint();方法是在监听事件处理方法里面。上面这一段代码也可以运行的,也会打印3次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式