1

私は Java で非常に単純で粗雑なグラフィックスを実行しようとしています (1980/1981 のコンピューティング環境をエミュレートするため、意図的に粗雑で単純です)。

Java (実際には Groovy) コードは、いくつかの非常に単純な BASIC を実行します。

10 REM Testing Plotting
20 FOR X = 0 TO 31
30 LET Y = SIN(X/10)
40 PLOT (X, 11 - Y * 11)
50 NEXT X

プロットは Java/Groovy で次のように提供されます。

grafix = textArea.getGraphics()

    ....
def plot(def x, def y)
{
    grafix.fillRect(x * 20 as Integer, y * 20 as Integer, 20, 20)
}

これで、コードは一定の方法で機能します。画面上で正弦曲線が点滅するのが簡単に見えますが、ほぼ瞬時に消えます (おそらく、テキスト領域の次の再描画時に)。グラフィックスをそこにとどまらせるにはどうすればよいですか-私が考えることができる唯一の方法は、プロット(およびアンプロット)をリストに保存し、すべてのペイントを「再生」させることですが、それは非常に極端な解決策のようです.

4

1 に答える 1

3
textArea.getGraphics()

そうしないでください。グラフィックス インスタンスは一時的なものです。代わりに、そうするように指示されたときにコンポーネントをペイントします ( をオーバーライドしてpaintComponent(Graphics))。

于 2012-06-22T20:58:41.930 に答える