通常,一個小程序將調用不同的方法,這些方法將有一個Graphics2D對象在屏幕上結束。是否有可能在Applet中創建自己的Graphics2D並與另一個結合使用?
在這個過程中,這些方法將操作並在這個對象上繪製東西。
但我的問題是,我有一些非常靜態的圖像,需要計算和繪製每個幀。
我該如何構建一個可緩存的圖形對象,然後重新應用移動的對象?例如,我有這個靜態背景抽屜,Graphics2D對象是Applet中的一個。
private Graphics2D drawbackground(Graphics2D g2d) {
// Debug grid layer
int x = 0;
int y = 0;
for (int i = 0; i < 9; i++) {
if (x == 0 && y == 0 || y % 82 == 0) {
x = 0;
for (int t = 0; t <= 5; t++) {
g2d.setColor(Color.WHITE);
g2d.drawLine(x, y + 41, x + 41, y);
g2d.drawLine(x + 41, y, x + 82, y + 41);
g2d.drawLine(x, y + 41, x + 41, y + 82);
g2d.drawLine(x + 82, y + 41, x + 41, y + 82);
x += 82;
}
y += 41;
} else if (y % 41 == 0) {
x = 41;
for (int t = 0; t <= 5; t++) {
g2d.setColor(Color.WHITE);
g2d.drawLine(x, y + 41, x + 41, y);
g2d.drawLine(x + 41, y, x + 82, y + 41);
g2d.drawLine(x, y + 41, x + 41, y + 82);
g2d.drawLine(x + 82, y + 41, x + 41, y + 82);
x += 82;
}
y += 41;
}
}
}
是否有可能產生這些圖紙,並在緩存副本重新使用它們,所以我的小程序並不需要使用時通過這些drawLines每個畫上運行?
爲什麼不使用一個BufferedImage做到這一點? – Raveline 2011-12-29 15:01:23