加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么调用“repaint()”而不是直接在Applet中调用“pai

发布时间:2020-12-15 02:03:04 所属栏目:Java 来源:网络整理
导读:我们覆盖这样的paint方法 public void paint(Graphics g){ g.drawString(msg,xpos,ypos);} 如果我们有另一种方法,可以说一个鼠标按下的事件方法 public void mousePressed(MouseEvent me) { xpos=me.getX(); // msg,xpos and ypos are variables of class yp
我们覆盖这样的paint方法

public void paint(Graphics g)
{
   g.drawString(msg,xpos,ypos);
}

如果我们有另一种方法,可以说一个鼠标按下的事件方法

public void mousePressed(MouseEvent me)    
    {
        xpos=me.getX();  // msg,xpos and ypos are variables of class
        ypos= me.getY();
        msg="You pressed mouse";
        repaint();
    }

为什么我们不能称为paint(Graphics g)而不是repaint()?

解决方法

你应该尝试一下.你会注意到的

>你必须以某种方式得到Graphics对象.
>在事件处理程序的主体中调用绘制不是最佳实践,因为它会导致该方法的主体立即在GUI线程上执行,因此在paint返回之前不能再处理任何事件. OTOH,repaint计划在将来某个方便的点发生绘制事件,并且不会使GUI看起来挂起.当然,在你的情况下,drawString并不是非常慢,但总的来说….

Here is the classic article on painting,来自Java人自己.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读