我正在用java編寫一個國際象棋程序,必須在小程序中顯示。我目前在填充棋子陣列時遇到問題。這是目前正在我的JApplet的paint()方法中完成的,我知道這是錯誤的,因爲paint可以被調用多次。我已經嘗試創建數組並將其填充到我的初始化方法中,但這根本不起作用。任何幫助,將不勝感激。Java國際象棋小程序
public class DrawChessBoard extends JApplet
implements MouseListener, MouseMotionListener {
ChessPiece myPiece;
ImageIcon square;
ImageObserver observer;
ChessBoard gameBoard;
boolean isMouseDragging = false;
int size; //square dimensions
public void initialize() {
setBackground(Color.white);
Image bSquare = square.getImage();
size = bSquare.getWidth(observer);
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics h) {
Graphics2D g = (Graphics2D) h;
//System.out.println("Am I being called more than once?");
gameBoard = new ChessBoard(8);
gameBoard.start();
gameBoard.paintBoard(g);
gameBoard.paintComponent(g);
}
}
看到這個[示例](http://stackoverflow.com/questions/2561690/placing-component-on-glass-pane/2562685#2562685)和[變化](http://stackoverflow.com/questions/ 2561690 /放置組分在玻璃上窗格/ 2563350#2563350)。 – trashgod
定義「根本不起作用」?我想這正是你想要初始化它的地方,至少讓事情開始。 (例如,您可能*也想*在新遊戲開始時初始化它。) –