我正在尝试使用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
Plot在Java / Groovy中提供,如下所示:
grafix = textArea.getGraphics()
....
def plot(def x, def y)
{
grafix.fillRect(x * 20 as Integer, y * 20 as Integer, 20, 20)
}
现在代码以时尚的方式运作 - 我简单地看到屏幕上的正弦曲线闪烁,但它几乎瞬间消失(大概是在文本区域的下一次重绘)。我怎样才能让图形保持在那里 - 我能想到的唯一方法是将图(和非图形)保存到列表中,然后让每个画面“播放” - 但这似乎是一个非常极端的解决方案。
答案 0 :(得分:3)
textArea.getGraphics()
不要那样做。图形实例是瞬间的。而是在被告知这样做时绘制组件(通过覆盖paintComponent(Graphics)
)。