public void initBoardPanel() {
        boardPanel = new BoardPanel(this.boardModel);
        this.add(boardPanel, BorderLayout.CENTER);
        this.pack();
        this.revalidate();

        boardPanel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent me) {
                System.out.println("x:" + me.getX() + " y:" + me.getY());
                int x = me.getX();
                int y = me.getY();

                // TODO Refactor into a method of BoardPanel
                int col = x / 20;
                int row = y / 20;

                if (whoseTurn.get() == localPlayer) {
                    Move move = new Move(row, col, localPlayer);
                    if (boardModel.checkMoveEligible(move) == true) {
                        try {
                            nextMove.put(move);
                        } catch (InterruptedException ex) {
                            Logger.getLogger(GameFrame.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        System.out.println("Move " + row + " " + col);
                    }
                }
            }
        });

        boardPanel.startTimer();
    }