i am trying to create a tic tac toe GUI but i am having trouble...here is my code:

import javax.swing.JFrame;

public class TtTDemo
{
	public static void main(String[] args)
		  {
		  	  JFrame frame = new JFrame ("TicTacToe");
			  frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
			 
			  frame.getContentPane().add (new Main());
			  
			  frame.pack();
			  frame.setVisible(true);
			     
	    }
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class TicTacToe {

    private char[][] board = new char[3][3];
    private String player1;
    private String player2;
    private int currentPlayer;
    private char marker1;
    private char marker2;
    private int plays;
    private BufferedReader reader =
            new BufferedReader(new InputStreamReader(System.in));
	 private JPanel bp, mp;

    protected void init() {
        int counter = 0;
        for (int i = 0; i < 3; i++) {
            for (int i1 = 0; i1 < 3; i1++) {
                board[i][i1] = Character.forDigit(++counter, 10);
            }
        }
        currentPlayer = 1;
        plays = 0;
    }

    protected void switchPlayers() {
        if (getCurrentPlayer() == 1) {
            setCurrentPlayer(2);
        } else {
            setCurrentPlayer(1);
        }
        setPlays(getPlays() + 1);
    }

	 JPanel mp= new JPanel();	
    protected boolean placeMarker(int play) {
        for (int i = 0; i < 3; i++) {
            for (int i1 = 0; i1 < 3; i1++) {
                if (board[i][i1] == Character.forDigit(play, 10)) {
                    board[i][i1] = (getCurrentPlayer() == 1) ? getMarker1() : getMarker2();
                    return true;
                }
            }
        }
        return false;
    }
	 mp.add(placeMarker);
	 

    protected boolean winner() {
        //Checking rows
        char current = ' ';
        for (int i = 0; i < 3; i++) {
            int i1 = 0;
            for (i1 = 0; i1 < 3; i1++) {
                if (!Character.isLetter(board[i][i1])) {
                    break;
                }
                if (i1 == 0) {
                    current = board[i][i1];
                } else if (current != board[i][i1]) {
                    break;
                }
                if (i1 == 2) {
                    //Found winner
                    return true;
                }
            }
        }
        //Checking columns
        for (int i = 0; i < 3; i++) {
            current = ' ';
            int i1 = 0;
            for (i1 = 0; i1 < 3; i1++) {
                if (!Character.isLetter(board[i1][i])) {
                    break;
                }
                if (i1 == 0) {
                    current = board[i1][i];
                } else if (current != board[i1][i]) {
                    break;
                }
                if (i1 == 2) {
                    //Found winner
                    return true;
                }
            }
        }
        //Checking diagonals
        current = board[0][0];
        if (Character.isLetter(current) && board[1][1] == current && board[2][2] == current) {
            return true;
        }
        current = board[2][0];
        if (Character.isLetter(current) && board[1][1] == current && board[0][2] == current) {
            return true;
        }
        return false;
    }

    protected String getRules() {
        StringBuilder builder = new StringBuilder();
        builder.append("Players take turns marking a square. Only squares \n");
        builder.append("not already marked can be picked. Once a player has \n");
        builder.append("marked three squares in a row, they win! If all squares \n");
        builder.append("are marked and no three squares are the same, a tied game is declared.\n");
        builder.append("Have Fun! \n\n");
        return builder.toString();
    }

    protected String getPrompt()
	  {
        String prompt = "";
        try {
            prompt = reader.readLine();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return prompt;
    }

	 JPanel bp= new JPanel;
    protected String drawBoard() 
	 {
        StringBuilder builder = new StringBuilder("Game board: \n");
        for (int i = 0; i < 3; i++) {
            for (int i1 = 0; i1 < 3; i1++) {
                builder.append("[" + board[i][i1] + "]");
            }
            builder.append("\n");
        }
        return builder.toString();
    }
	 bp.add(drawBoard);

    public int getCurrentPlayer() {
        return currentPlayer;
    }

    public void setCurrentPlayer(int currentPlayer) {
        this.currentPlayer = currentPlayer;
    }

    public char getMarker1() {
        return marker1;
    }

    public void setMarker1(char marker1) {
        this.marker1 = marker1;
    }

    public char getMarker2() {
        return marker2;
    }

    public void setMarker2(char marker2) {
        this.marker2 = marker2;
    }

    public int getPlays() {
        return plays;
    }

    public void setPlays(int plays) {
        this.plays = plays;
    }

    public String getPlayer1() {
        return player1;
    }

    public void setPlayer1(String player1) {
        this.player1 = player1;
    }

    public String getPlayer2() {
        return player2;
    }

    public void setPlayer2(String player2) {
        this.player2 = player2;
    }
}
import javax.swing.JPanel;
import java.awt.*;


public class Main extends JPanel
{

    public void play()
	  {

        TicTacToe game = new TicTacToe();

        System.out.println("Welcome! Tic Tac Toe is a two player game.");
        System.out.print("Enter player one's name: ");
        game.setPlayer1(game.getPrompt());
        System.out.print("Enter player two's name: ");
        game.setPlayer2(game.getPrompt());
        boolean markerOk = false;
        while (!markerOk) {
            System.out.print("Select any letter as " + game.getPlayer1() + "'s marker: ");
            String marker = game.getPrompt();
            if (marker.length() == 1 &&
                    Character.isLetter(marker.toCharArray()[0])) {
                markerOk = true;
                game.setMarker1(marker.toCharArray()[0]);
            } else {
                System.out.println("Invalid marker, try again");
            }
        }
        markerOk = false;
        while (!markerOk) {
            System.out.print("Select any letter as " + game.getPlayer2() + "'s marker: ");
            String marker = game.getPrompt();
            if (marker.length() == 1 &&
                    Character.isLetter(marker.toCharArray()[0])) {
                markerOk = true;
                game.setMarker2(marker.toCharArray()[0]);
            } else {
                System.out.println("Invalid marker, try again");
            }
        }

        boolean continuePlaying = true;

        while (continuePlaying) {

            game.init();
            System.out.println();
            System.out.println(game.getRules());
            System.out.println();
            add(game.drawBoard());
            System.out.println();

            String player = null;
            while (!game.winner() && game.getPlays() < 9) {
                player = game.getCurrentPlayer() == 1 ? game.getPlayer1() : game.getPlayer2();
                boolean validPick = false;
                while (!validPick) {
                    System.out.print("It is " + player + "'s turn. Pick a square: ");
                    String square = game.getPrompt();
                    if (square.length() == 1 && Character.isDigit(square.toCharArray()[0])) {
                        int pick = 0;
                        try {
                            pick = Integer.parseInt(square);
                        } catch (NumberFormatException e) {
                            
                        }
                        validPick = game.placeMarker(pick);
                    }
                    if (!validPick) {
                        System.out.println("Square can not be selected. Retry");
                    }
                }
                game.switchPlayers();
                System.out.println();
                game.drawBoard();
                System.out.println();
            }
            if (game.winner()) {
                System.out.println("Game Over - " + player + " WINS!!!");
            } else {
                System.out.println("Game Over - Draw");
            }
            System.out.println();
            System.out.print("Play again? (Y/N): ");
            String choice = game.getPrompt();
            if (!choice.equalsIgnoreCase("Y")) {
                continuePlaying = false;
            }
        }
    }
}

Why didn't you post problem description or any error you getting? Why you expecting people to copy and paste your code, debug it to find issues?

This question has already been answered. Start a new discussion instead.