首页 > Java > java教程 > 如何使用 move() 方法将星形运动限制在 JFrame 内?

如何使用 move() 方法将星形运动限制在 JFrame 内?

Barbara Streisand
发布: 2024-11-30 21:24:14
原创
351 人浏览过

How to Confine Star Movement Within a JFrame Using the move() Method?

Star 类中的 move() 方法负责移动星星。但是,它仅检查 WIDTH 和 HEIGHT 常量,这些常量是为绘制星形的 JPanel 的大小定义的。这意味着,如果星星移动到 JPanel 之外,它将继续向同一方向移动,并且不会在 JPanel 内重新定位。

要解决此问题,需要将 move() 方法更新为检查 JPanel 所在的 JFrame 的宽度和高度。这样,如果 Star 移动到 JPanel 之外,它将在 JFrame 内重新定位。以下是 move() 方法的更新代码:

public void move() {
    if (location.x < 0 || location.x > frame.getContentPane().getWidth() - 20) {
        xIncr = -xIncr;
    }
    if (location.y < 0 || location.y > frame.getContentPane().getHeight() - 20) {
        yIncr = -yIncr;
    }
    translate(xIncr, yIncr);
    location.setLocation(location.x + xIncr, location.y + yIncr);
}
登录后复制

以上是如何使用 move() 方法将星形运动限制在 JFrame 内?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板