2012-01-16 4 views
0

マイカスタムキャンバスキャンバスを拡張し、そしてプログラムエントリポイントがスケーリングされた乱数を取得し、Yはこのフルライングラフの代わりに短いラインセグメントが表示されるのはなぜですか?

ような座標の場所を設定するループを実行

@Override 
public void paint(Graphics g) { 

    Rectangle bounds = getBounds(); 

    g.translate(0, (bounds.y + bounds.height)/2); 

    int maxX = (int) bounds.getMaxX(); 

    g.drawLine(currX, currY, currX + 5, m_nextY); 

    currX = currX > maxX ? maxX : currX + 5; 
    currY = m_nextY; 

    if (currX >= maxX) { 
     currX = 0; 
    } 

} 

int currX = 0; 
int currY = 0; 
int m_nextY; 

public void setNextY(int pNext) { 
    m_nextY = pNext; 
} 

以下のように塗料()メソッドをオーバーライド

java.util.Random engine = new Random(); 

while (Thread.currentThread().isAlive()) { 
     myCanvas.setNextY((int) (engine.nextFloat() * -15f)); 
     myCanvas.paint(getGraphics()); 
     try { 
      Thread.sleep(300); 
     } catch (InterruptedException ex) { 
     // Balderdash! 
     } 

    } 

ここで期待される出力は線グラフであったはずです。その代わりに、位置と姿勢が変化する単一の短いセグメントが表示されます。

私はここで間違っていますか?

答えて

0
  1. 通常、コードからpaint()を呼び出すことはありません。 paint()はAWTフレームワークから呼び出されます。だからあなたのループはpaint()メソッドに入るはずです。

  2. エンジンとは?

+0

engineはjava.util.Randomのインスタンスです。 – Everyone

関連する問題