Saya ingin melukis beberapa hal di JPanel
dan membaca serta mempelajari Performing Custom Pelajaran melukis. Saat memperbarui kotak menggunakan repaint
Saya merasa menggunakan konstruksi ini
private void moveSquare(int x, int y) {
if ((squareX != x) || (squareY != y)) {
squareX = x;
squareY = y;
repaint();
}
}
memberikan contoh spesifik ini kinerja cat yang jauh lebih baik dibandingkan dengan yang direkomendasikan ini
private void moveSquare(int x, int y) {
int OFFSET = 1;
if ((squareX != x) || (squareY != y)) {
repaint(squareX, squareY, squareW + OFFSET, squareH + OFFSET);
squareX = x;
squareY = y;
repaint(squareX, squareY, squareW + OFFSET, squareH + OFFSET);
}
}
Jika saya menggunakan yang terakhir, kotaknya terlihat agak 'tergencet' saat proses drag.
Saya tahu, ini adalah contoh yang sangat mendasar, tetapi ini membuat agak takut dengan kinerja Java Graphics secara umum.