我该如何开始为我的JFrame自动更新创建我的画图呢?
目前,我有一个
JFrame
,其中包含一个JPanel
。JPanel
是我的程序的画笔。画图表示我所有的Graphics g
.drag字符串的东西。
目前,它只在用户与JFrame
交互时更新显示,但我希望它在不使用While循环(CPU使用量太大)的情况下不断更新(repaint()
)自身。
有人知道我怎么能做到这一点吗?
解决方案
您需要做的是在知道面板上的图像部分发生更改时通知Swing组件。正常的方法是,正如您所说的,调用repaint()
,如果您知道被‘失效’的矩形,您也可以指出这一点。
根据导致JPanel
内容的事件,您需要更改您的应用程序设计,以便应用程序的演示部分‘监听’底层数据的更改,并在这些更改发生时重新绘制。
还有一种名为paintImmediately()
的方法,它可能适用于某些情况,但您必须更多地描述您的场景,在哪些情况下您需要不断重新绘制。
相关文章