(Java) Tic-Tac-Toe game using 2 dimensional Array
<p>In class, our assignment is to create a two-dimensional array and create a tic-tac-toe game around it. I have everything done except displaying when the whole board is full and the game is a draw. I have tried a few things but I have not found the solution and I need some help... Here is my code:</p>

<pre><code>import java.util.Scanner;

public class TicTacToe {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int row, column;
        char player = 'X';

        //create 2 dimensional array for tic tac toe board
        char[][] board = new char[3][3];
        char ch = '1';
        for (int i = 0; i &lt; 3; i++){
            for (int j = 0; j &lt; 3; j++) {
                board[i][j] = ch++;
            }
        }
        displayBoard(board);
        while(!winner(board) == true){

            //get input for row/column
            System.out.println("Enter a row and column (0, 1, or 2); for player " + player + ":");
            row = in.nextInt();
            column = in.nextInt();

            //occupied
            while (board[row][column] == 'X' || board[row][column] == 'O') {
                System.out.println("This spot is occupied. Please try again");
            }
            //place the X
            board[row][column] = player;
            displayBoard(board);

            if (winner(board)){
                System.out.println("Player " + player + " is the winner!");
            }

            //time to swap players after each go.
            if (player == 'O') {
                player = 'X';

            }
            else {
                player = 'O';
            }
            if (winner(board) == false) {
            System.out.println("The game is a draw. Please try again.");

        }

    }

    private static void displayBoard(char[][] board) {
        for (int i = 0; i &lt; board.length; i++) {
            for (int j = 0; j &lt; board[i].length; j++) {
                if (j == board[i].length - 1) System.out.print(board[i][j]);
                else System.out.print( board[i][j] + " | ");
            }
            System.out.println();
        }


    }
    //method to determine whether there is an x or an o in the spot
    public static Boolean winner(char[][] board){
        for (int i = 0; i&lt; board.length; i++) {
            for (int j = 0; j &lt; board[0].length; j++) {
                if (board[i][j] == 'O' || board[i][j] == 'X') {
                    return false;
                }
            }
        }

        return (board[0][0] == board [0][1] &amp;&amp; board[0][0] == board [0][2]) ||
            (board[0][0] == board [1][1] &amp;&amp; board[0][0] == board [2][2]) ||
            (board[0][0] == board [1][0] &amp;&amp; board[0][0] == board [2][0]) ||
            (board[2][0] == board [2][1] &amp;&amp; board[2][0] == board [2][2]) ||
            (board[2][0] == board [1][1] &amp;&amp; board[0][0] == board [0][2]) ||
            (board[0][2] == board [1][2] &amp;&amp; board[0][2] == board [2][2]) ||
            (board[0][1] == board [1][1] &amp;&amp; board[0][1] == board [2][1]) ||
            (board[1][0] == board [1][1] &amp;&amp; board[1][0] == board [1][2]);
    }
}
</code></pre>

<p>I want output saying that the board is full when it's full but I get nothing. This is the last line of my output and as you can see, my current strategy is not working as it continues to ask for input. --></p>

<p>Enter a row and column (0, 1, or 2); for player X:
2 0
X | O | X
O | O | X
X | X | O
Enter a row and column (0, 1, or 2); for player O: </p>