使用 break 停止 java 中的移动行

Using break to stop the moving lines in java

我是 java 的新手,我有一个问题正在努力解决。我出于我的目的使用 ACM 库。我的目标如下:

  1. 移动标签 1
  2. 移动标签 2
  3. 比较标签 1 和标签 2 的位置(当文本相互重叠时)"Using 'if' statement"
  4. 一旦到达顶部,使用 break 语句将其停止。
  5. 重新开始循环。

如果有人可以通过解释如何实施来帮助我。那将是真棒。我在尝试学习。谢谢!

import acm.graphics.GLabel;
import acm.program.CommandLineProgram;
import acm.program.GraphicsProgram;

public class Main extends GraphicsProgram {

    public void run( )

    {
            int label1_xy = 50;
            int label2_xy = 200;

            GLabel label1 = new GLabel("Hello World.");
            add(label1, label1_xy,label1_xy);

            GLabel label2 = new GLabel("Goodbye World.");
            add(label2, label2_xy,label2_xy);

            while (true)
            {
            label1.move(10,10);
                pause(500);
            label2.move(-10,-10);
            break;
            }
    }
}
  1. 移动标签 1
  2. 移动标签 2

这两个你都做到了

  1. 比较标签 1 和标签 2 的位置(当文本相互重叠时)"Using 'if' statement"
  2. 一旦到达顶部,使用 break 语句将其停止。

您可以通过尝试检索对象的 "bound" 来比较这两个标签的位置。示例:

label1.move(10,10);
pause(500);
if (label1.getBounds().getX() == label2.getBounds().getX() 
     && label1.getBounds().getY() == label2.getBounds().getY()) {
    break;
} else {
    label2.move(-10,-10);
}
  1. 重新开始循环

您可以通过为 run() 代码放置另一个 while 块来重新启动它,或者可能只是调用 run()(注意此处的 WhosebugError)。