2011-11-19 50 views
1

我想沿着這些路線的東西:如何測量JComponent中的Java2D繪圖性能?

private static class TexturePanel extends JPanel { 

    @Override 
    protected void paintComponent(Graphics graphics) { 

     // drawing code 

     // calc fps 

     repaint(); 
    } 
} 

正在調用paintComponent()repaint()正確的方法呢?

+0

不,這是錯誤的。 paintComponent最終從repaint調用,所以你創建一個完整的圓圈 – kleopatra

+0

@Brogrammer:我正在測量繪圖性能,這就是爲什麼我想要立即重繪。 –

回答

2

如何測量JComponent中的Java2D繪圖性能?

粗措施是給重繪Timer任意短的延遲&計數FPS。

打電話給repaint()paintComponent()正確嗎?

不,不是。 paintComponent()是好的,但不要在該方法內觸發repaint()。有關提示,請參閱Java教程的Performing Custom Painting課程。

如果你不能從中得到它,我建議你準備併發布你的最佳努力SSCCE

+0

right,觸發來自javax.swing.Timer的repaint() – mKorbel

+1

請參見['AnimationTest'](http://stackoverflow.com/questions/3256269/jtextfields-on-top-of-active-drawing-on-jpanel-旋擰​​的問題/ 3256941#3256941)。 – trashgod