java - java中使用break来停止移动的线

标签 java acm-java-libraries

我对java完全陌生,我有一个问题正在尝试解决。我正在使用 ACM 库来实现我的目的。我的目标如下:

  1. 移动标签 1
  2. 移动标签 2
  3. 比较标签 1 和标签 2 的位置(当文本相互碰撞时)“使用 'if' 语句”
  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 和标签 2 的位置(当文本相互碰撞时)“使用 'if' 语句”
  • 到达顶部后,使用break语句停止它。
  • 您可以通过尝试检索对象的“绑定(bind)”来比较这两个标签的位置。示例:

    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);
    }
    
  • 重新开始循环
  • 您可以通过为 run() 放置另一个 while block 来重新启动它。代码或者只是调用 run() (注意此处的 StackOverflowError)。

    关于java - java中使用break来停止移动的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941171/

    相关文章:

    java - 如何从父类(super class)扩展内容? ( java )

    java - 避免 Swing 荧光笔溢出到新添加的文本中

    Java - Spring Boot - Mysql/Java - 从表的列中获取车辆类型并从另一个表中获取其总计数(数量)

    java - 返回两个字符串不同的第一个位置

    java - 使用java中的movePolar方法以圆周运动移动GOval对象

    Java acm、GRect方法、继承add方法不显示

    java - iText:在 Java 中将 html 和 css 转换为 PDF

    Java 插件未附加到 Eclipse 中的调试 session

    java - 如何禁用BufferRecycler?

    java - 从终端利用 acm.program 包运行 java 脚本