首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么这个椭圆形移动得这么快?

为什么这个椭圆形移动得这么快?
EN

Stack Overflow用户
提问于 2019-06-05 04:12:02
回答 1查看 55关注 0票数 1

我正在学习Java,并试图构建一个应用程序,当我单击面板时,它会抛出一个球。问题是,当绘制椭圆时,它移动得如此之快,以至于即使将Thread.sleep设置为最大值也只会使其几乎看不到。我怎么才能让它慢下来呢?

代码语言:javascript
复制
public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setPaint(Color.red);
        g2.drawOval(x,y,20,20);

        Thread thread = new Thread() {
            public void run() {
              while (true) {
                y = y + 1;
                repaint();
                try {
                  Thread.sleep(2147483647);
                } 
                catch (InterruptedException ex) {
                }
              }
            }
          };
          thread.start();
    }
EN

回答 1

Stack Overflow用户

发布于 2019-06-05 04:27:28

我还没有在我自己的环境中尝试过你的程序,但据我所知,似乎让你的球移动的是:

代码语言:javascript
复制
y = y + 1; 

行,因此您可以考虑将其更改为一个较小的数字,很可能是双精度。另外,正如前面提到的,也许您可以尝试不使用:

代码语言:javascript
复制
while (true)

语句,因为这将总是和永远计算为真,这不是最大的问题,但也许你可以考虑使用其他东西,比如使用与y变量有关的东西,比如:while (y < 768 ),或者甚至是像for循环这样的东西,这取决于你正在做的是什么。

希望这能对你有所帮助,我也建议你看看这里的答案:Java Graphics Updating Too Fast

祝你一切顺利!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56450707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档