因此,我希望创建一个类似于Checker Board的网格,并使对象从一个正方形的瓷砖移动到另一个。无需单击或任何精美的动画,这更多是一种模拟动画,它将自动移动所有零件。
到目前为止,我已经创建了这个具有2d数组JPanel的CheckerBoard类,并且我正在创建开发板并在for循环中输入颜色。一旦创建了板并在GUI上显示它,我就希望一次为每个目标方块中的棋子缓慢添加动画效果。
我该如何定位正方形(JPanel),然后在其上添加图像或图标,然后在GUI上更新屏幕
import java.awt.*;
import javax.swing.*;
public class CheckerBoard
{
public static void main (String args[])
{
int row = 10;
int col = 10;
JFrame checkerBoard = new JFrame();
JPanel[][] panel = new JPanel[row][col];
checkerBoard.setSize(400,400);
checkerBoard.setTitle("CheckerBoard");
checkerBoard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container pane = checkerBoard.getContentPane();
pane.setLayout(new GridLayout(row,col));
createBoard(row, col, panel, pane);
updateBoard(); //dont know what to do here
checkerBoard.setVisible(true);
}
public static void createBoard(int row, int col, JPanel[][] panel, Container pane) {
Color checker;
for (int x = 0; x < row; x++) {
for (int y = 0; y < col; y++) {
checker = (x+y) % 2 == 0 ? Color.GRAY : Color.lightGray;
JPanel currentTile = new JPanel();
currentTile.setPreferredSize(new Dimension(400/row, 400/col));
currentTile.setBackground(checker);
panel[x][y] = currentTile;
pane.add(panel[x][y]);
}
}
}
public static void updateBoard() {
// Dont know what to do here
}
}
此代码的结果确实可以正确执行检查器模式,但是现在的主要目标是在目标正方形上添加图标或图像,并用板上的新对象更新GUI