1

生物にjLabelsを使用して、生物の成長のシミュレーションに取り組んでいます。ただし、 for ループとタイマーを実装して移動を表示しようとすると、フリーズしてから、移動を表示するのではなく、ラベルの最終位置を表示します。なぜこれが起こっているのか誰にも説明できますか?

public class TestView extends FrameView {
   public TestView(SingleFrameApplication app) {
      super(app);
      initComponents();
      picture = new JLabel();
      picture.setIcon(new ImageIcon(System.getProperty("user.dir") +
            File.separator + "mouse.gif"));
      picture.setBounds(0, 0, 100, 100);
      mainPanel.add(picture);

      for (int x = 0; x < 20; x++) {
         move();
         wait(50);
      }
   }

   public static void wait(int n) {
       long t0, t1;
       t0 = System.currentTimeMillis();
       do {
           t1 = System.currentTimeMillis();
       } while (t1 - t0 < n);
   }

   public static void move() {
       picture.setBounds(picture.getX() + 5, picture.getY(), 100, 100);
   }
4

1 に答える 1

1

拡散制限集約とその他のシミュレーションのこの例が好きかもしれません。

于 2013-02-12T13:00:48.067 に答える