Retorna null ao exibir os nomes dos players no Frame

Olá a todos!
Seguindo o meu código: http://codepaste.net/mzhssu
Estou tendo problemas ao exibir o nome do usuário no Frame, aqui:

 
            playerOne = new JLabel(detail);
            add(playerOne); //add playerOne to Frame

Porém, estou recebendo o valor como null. Eu crio o objeto:

TicTacToe players = new TicTacToe();
//chamo
players.getPlayerOne();
playerOne = new JLabel(players.getPlayerOne());

Mas, eu recebo o valor como null. Por que isso ? O que faço para colocar o nome do player 1 e o player 2 no Frame ?

Obrigado!

Por favor use nomes melhores para os topicos, na primeira pagina existe dois topicos diferentes com um titulo generico como “jogo simples”.

Sem problemas.

Então, primeira coisa…
Você não criou os construtores… Por exemplo, na classe Principal, você criou a classe TicTacToe (na verdade uma instância da classe) com a seguinte chamada:

TicTacToe tic = new TicTacToe();

Porém, sua classe TicTacToe não possui um construtor, mas possui o método ‘public void TicTacToe()’, por isso você tem que chamar o método através do 'tic.TicTacToe()'
Basicamente falando, o construtor faz com que o método seja chamado sem precisar especificar o método… assim:


public class TicTacToe {
    public TicTacToe(){ //sem o void
    ....
    }
}

então ao criar uma instância da classe TicTacToe não será preciso chamar o método construtor, ele será chamado automaticamente, ou seja, não precisa utilizar o ‘tic.TicTacToe()’ Assim como na classe Play… entendeu?

Agora vamos a segunda parte,
Você cria uma classe Play e cria uma String detail com o valor NULL… Quando você manda adicionar os nomes, o valor da String detail ainda está NULL…
O nome dos jogadores foram setados na classe TicTacToe, e em nenhum momento você passou estes valores para a classe Play
Para isto você pode utilizar os métodos Getter and Setters, ou passar o valor nos construtores (acho que é o mais próximo do que você quer)

Faça o seguinte:


public class Play{
 .....
 private String playerone;
 private String playertwo;
 ....


 public Play(String jogador1, String jogador2)
 {
        this.playerone = jogador1;
        this.playertwo = jogador2;
        setTitle("Game simple on Java!");
        .....
 }

E na classe TicTacToe ao criar a classe Play, passe os valores setados…

     Play playGame = new Play(namePlayerOne,namePlayerTwo);

Agora você pode utilizar os valores setados no método que quiser…

  playerOne = new JLabel(playerone);

caracas… espero que você tenha entendido… flw

Oi,

Olhe o seu código:

TicTacToe players = new TicTacToe(); //chamo players.getPlayerOne(); playerOne = new JLabel(players.getPlayerOne());

Onde está o setPlayerOne(String) para alimentar a variável e ter um retorno no get()?!

Tchauzin!