我正在下棋,我想讓玩家選擇棋盤的顏色。因此我會用這個方法:如何保存JPanel的特定部分?
static void createBoard(Graphics g) {
Color bright = new Color(255, 225, 181); //player chooses color
Color dark = new Color(188, 141, 105); //player chooses color
boolean darkTile = false;
for (int y = spaceY; y < (spaceY + BOARDHEIGHT); y += TILESIZE) {
for (int x = spaceX; x < (spaceX + BOARDWIDTH); x += TILESIZE) {
if (darkTile) {
g.setColor(dark);
} else {
g.setColor(bright);
}
g.fillRect(x, y, TILESIZE, TILESIZE);
darkTile = !darkTile;
}
darkTile = !darkTile;
}
BufferedImage overlay;
try {
overlay = ImageIO.read(new File("overlay.png"));
JLabel label = new JLabel(new ImageIcon(overlay));
g.drawImage(overlay, spaceX, spaceY, BOARDWIDTH, BOARDHEIGHT, null);
} catch (IOException e) {}
}
這個我想保存爲一個BufferedImage,所以我不必一直運行這個方法。
那麼,怎樣才能保存我的JPanel的只是這一部分,如果沒有東西棋盤之外? (將會有更多噴漆)
你想「保存」什麼?棋盤? – user3437460
是的,我想保存棋盤。遊戲正在運行一個線程,所以我想盡可能少地計算。 – Duke
[寫作/保存圖像](https://docs.oracle.com/javase/tutorial/2d/images/saveimage.html) – MadProgrammer