2014-01-29 75 views
0

這個小小程序應該從小程序框架的底部移動到頂部,當它到達頂部時,它應該再次從底部開始。問題是我調整applet窗口的大小時纔會移動。它不會移動,爲什麼它會這樣工作?Runnable Java小程序僅在調整大小時才起作用

import java.awt.*; 
import java.applet.*; 
import java.awt.event.*; 

public class Zad1 extends Applet implements Runnable { 

    Thread runner; 
    int yPos = 500; 

    public void start() { 
     if (runner == null) { 
      runner = new Thread(this); 
     } 
    } 

    public void stop() { 
     if (runner != null) { 
      runner = null; 
     } 
    } 

    public void run() { 
     while (true) { 
      repaint(); 
      try { 
       Thread.sleep(1); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 

     } 

    } 

    public void paint(Graphics g) { 
     g.drawString("Hello java", 50, yPos); 
     yPos--; 
     if (yPos < -30) 
      yPos = 500; 
    } 
} 
+5

'爲什麼這個dosent工作?'是一個壞頭銜。標題應該代表你的問題。請編輯。 –

+0

考慮更改標題 – Madhura

+0

請參閱[** this **](http://stackoverflow.com/a/21429862/2587435)瞭解如何使用「Timer」進行動畫製作。 –

回答

1

線程未啓動

 runner = new Thread(this); 
     runner.start(); // <----------- Insert this! 

但要注意,這個小程序的風格是壞在很多方面(如應該有「漆」沒有邏輯,你應該不會覆蓋「塗鴉「的Applet,你應該考慮一個JApplet等)。您應該閱讀http://docs.oracle.com/javase/tutorial/uiswing/components/applet.html和其他示例。

相關問題