2015-10-05 30 views
0

我對java完全陌生,我有一個問題,我正在嘗試解決。我正在使用ACM庫來達到我的目的。我的目標是:使用break來停止java中的移動行

  1. 移動標籤1
  2. 移動標籤2
  3. 比較標籤1和標籤2的位置(當文本命中及其對對方)「使用‘如果’聲明」
  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. 移動標籤1個
  2. 移動標籤2

你做了這兩個。

  • 比較標籤1和標籤2的位置(當文本命中和其上彼此)「使用‘if’語句」
  • 一旦在上面,阻止它通過使用break語句。
  • 您可以通過嘗試檢索對象的「邊界」來比較這兩個標籤的位置。例如:

    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()代碼重新啓動此或者只是調用run()(提防這裏的StackOverflowError)。