我已经搜索了这个问题,但每个人似乎都有图形更新太慢的问题。Java图形更新太快
介绍我的情况:
我有一个JFrame,我设置为全屏,使用兼容的显示模式。 在JFrame中我有几个JPanel和JButtons ...... 在JPanels之一中,我绘制了需要更新的移动对象。
我正在像这样更新图形:验证并重新绘制JFrame,然后重新验证并重新绘制相应的JPanel。 图形更新太快。 (我需要提到的是在JPanel上,我重写了paintComponent方法)。 我试图在JFrame上使用BufferStrategy,但这会阻止我显示JPanel和JButton(不知道为什么)。
我也会把这个oppurtunity问一些你们,如果你可以明确区分paint,validate,repaint,revalidate,invalidate等......所有的教程几乎都没有抓表面。
你只需要重新验证时,一个组件作为被添加/从其父中移除。它与绘画无关。请解释你正在尝试做什么,并展示一个尝试或至少你到目前为止的内容 –
你能解释为什么你认为它的更新速度太快吗? – FelixM
我认为它更新速度过快的原因是因为如果我使用通常定义的JFrame(新的JFrame,而不是全屏幕的显示模式),它正常工作(我有一些球在labirint中移动)。代码如下所示: void rollBalls(){ f.validate(); f.repaint(); updateBallsSpecs(); p.revalidate(); p.repaint();} f是JFrame,p是JFrame中的JPanel。更新规范方法只是更新球的规格(数组中的坐标),我在JPanel类的paintComponent方法中使用的坐标。 – user3577465