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

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

Barbara Streisand
Barbara Streisand原创
2024-11-30 21:24:14358浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn