我已經搜索了這個問題,但每個人似乎都有圖形更新太慢的問題。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