我正在嘗試使用Swing製作遊戲,並且需要在遊戲板上製作一個玩家板,所以我使用了JLayeredPane
。在第0層,我畫了棋盤,然後在第一層繪製了球員。 這個效果很好,但問題在於當我重繪第1層(例如更改給定播放器的位置)時,性能非常糟糕。我的假設是它正在重新繪製背景板,這是造成這個問題的原因。 下面的代碼:Swing JLayeredPane停止重新繪製所有圖層
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.add(boardView, new Integer(0));
layeredPane.add(creepsView, new Integer(1));
creepsView
和boardView
覆蓋paint方法,當改變毛骨悚然的狀態發生,它調用了creepsView.repaint()
方法,但隨後的boardview.paint()
由JLayeredPane的叫,我不理解爲什麼。我怎樣才能避免它? (我不想重繪那些沒有改變的東西)。