Satranç tahtasının her bir döşemesi olarak JButtons kullanarak küçük bir satranç oyunu oluşturuyorum. Sonra aşağıdaki kodu kullanarak her karo (toplamda 64) bir eylem dinleyicisi vermek:Java - Kendiliğinden ActionListeners'e geçiş
for (int y = 0; y < chessBoardColumns; y++) {
for (int x = 0; x < chessBoardRows; x++) {
JButton square = new JButton();
ActionListener squareListener = new ChessSquareListener(this);
chessBoardSquares[x][y] = square;
chessBoardSquares[x][y].addActionListener(squareListener);
}
}
eylem dinleyici ayrı pakette ve aşağıdaki gibidir: Size şöyle
public class ChessSquareListener implements ActionListener {
private ChessGame game;
public ChessSquareListener(ChessGame game) {
this.game = game;
}
public void actionPerformed(ActionEvent e) {
game.doSomething();
}
}
görebiliyorum, tüm oyunun örneğini her kareye dinleyiciye aktarıyorum. Bu, her bir dinleyici için oyunun 64 kopyası oluşturuyor mu yoksa oyun örneğine bir referans mı veriyor?
Sen kullanışlı bu yanıt bulabilirsiniz
jsut oyun örneğinin referansını değil, oyunun 64 kopyasını aktarır. – prasad