Valor digitado em JOptionPane.InputDialog não salva em tabela!

Olá pessoal, td bm?
Preciso de ajuda urgente pro meu TCC!!!
Estou fazedno um quiz em java e é o seguinte: tenho um JFrame principal (como menu principal do jogo), e qndo o usuário clica em um nível de jogo, mostra uma caixa de dialogo InputDialog, para ele digitar o nome. O código deste trecho segue abaixo:

new playerIII(); aux = JOptionPane.showInputDialog(null, "Aluno(a), digite seu nome para jogar!", "Nome do aluno(a):", JOptionPane.INFORMATION_MESSAGE); pontos.nome = aux; pontos.nivel="Fácil"; this.dispose(); new NewJFrame().setVisible(true);

Porém, ao terminar as perguntas e exibir o JFrame de Recordes, o nome do usuário é mostrado em um label. Mas ao clicar no botao para salvar a pontuação, apenas seu nome não é salvo. Segue abaixo o código do botao q salva pontuação:

new playerIII(); if(BD.getConnection()) { String sql = ""; sql = "INSERT INTO recordes (nome, nivel, pontuacao) Values('" + pontos.nome + "','" + pontos.nivel + "','" + pontos.ponto + "')"; int r = BD.runSQL(sql); } new certosom(); JOptionPane.showMessageDialog(null, "Sua pontuação foi salva!","Recorde:",JOptionPane.INFORMATION_MESSAGE); if (pontos.id > 0) { pontos.id = 1; } this.dispose(); new menu().setVisible(true);

Por favor, me judem, tcc pra entregar ja em junho!!!
bjossss e obrigada!!!

new playerIII();
    if(BD.getConnection())
    {
        System.out.println("nome akiiiiiiiiiiiiiiiiii "+pontos.nome);
        String sql = "";
        sql = "INSERT INTO recordes (nome, nivel, pontuacao) Values('" +
        pontos.nome + "','" +
        pontos.nivel + "','" +
        pontos.ponto + "')";
        int r = BD.runSQL(sql);   
    }
    new certosom();
    JOptionPane.showMessageDialog(null, "Sua pontuação foi salva!","Recorde:",JOptionPane.INFORMATION_MESSAGE);
     if (pontos.id > 0)
     {
         pontos.id = 1;
     }    
    this.dispose();
    new menu().setVisible(true);

Teste isso, e veja se esta retornando algo do seu objeto pontos.nome

[quote=TheKill] new playerIII(); if(BD.getConnection()) { System.out.println("nome akiiiiiiiiiiiiiiiiii "+pontos.nome); String sql = ""; sql = "INSERT INTO recordes (nome, nivel, pontuacao) Values('" + pontos.nome + "','" + pontos.nivel + "','" + pontos.ponto + "')"; int r = BD.runSQL(sql); } new certosom(); JOptionPane.showMessageDialog(null, "Sua pontuação foi salva!","Recorde:",JOptionPane.INFORMATION_MESSAGE); if (pontos.id > 0) { pontos.id = 1; } this.dispose(); new menu().setVisible(true);

Teste isso, e veja se esta retornando algo do seu objeto pontos.nome[/quote]

Mas o que vc quis dizer com o “nome akiiiiiiiiiiiiiiii”? qual variavel ou valor seria ai?

você testou??

ele vai mostrar oque está vindo de pontos.nome

[quote=TheKill]você testou??

ele vai mostrar oque está vindo de pontos.nome
…[/quote]

Testei, mas ñ exibiu nada!

Acho que já descobriu o erro né? ^^

Ou preciso dizer? hasuhasuhsaushaua

Provavelmente é esse pontos.nome

Você deveria criar um método público para acessar variáveis privada…
Algo do tipo

[code]public void setnome (String novonome) {
nome = novonome;
}

public String getnome () {
return nome;
}[/code]

E lá em cima vc faria

pontos.setnome("seu nome aki");

desculpa, respondi errado pra vc, ele exibiu sim, mas apenas o q esta digitado dentro das aspas…

o valor de pontos.nome, q no caso é o nome q inseri no input dialog, ñ mostrou

E outra…
vc declaro o aux como string?

String aux

Foi oque eu te falei moça.

Seu objeto pontos.nome esta VAZIO.

[quote=TheKill]Foi oque eu te falei moça.

Seu objeto pontos.nome esta VAZIO.[/quote]

Mas então, porque ele esta vazio se eu digitei o nome do jogador no inputdialog?

Ai neste caso, vc vai ter que analisar seu código…

Porque não tá setando informação neste objeto…

o engraçado é q tipo: ao lado da tabela de recordes, tenho tres label’s, onde um mostra o nome do jogador, digitado no inputdialog, outro o nivel em q ele jogou e outro sua pontuação.
Só q qndo vc clika no botao salvar pontuação, ele salva somente o nivel e os pontos, somente o nome q ñ!
Ou seja, ele ta reconhecendo o q digitei no inputdialog, tanto é q mostra no label, mas ele ñ mostra nada qndo vc manda ele pro mysql!!!

Se alguém mais puder me auxiliar, agradeço desde ja…

[quote=pedroroxd]Provavelmente é esse pontos.nome

Você deveria criar um método público para acessar variáveis privada…
Algo do tipo

[code]public void setnome (String novonome) {
nome = novonome;
}

public String getnome () {
return nome;
}[/code]

E lá em cima vc faria

pontos.setnome("seu nome aki");

Quando vc diz :
E lá em cima vc faria

pontos.setnome("seu nome aki");

vc quer dizer em cima da onde? em qual parte do código?

Oi,

Retire o this.dispose() e coloque depois do setVisible(true); ou em qualquer outro lugar.
Provavelmente está perdendo a refêrencia.

new playerIII(); 
    aux = JOptionPane.showInputDialog(null, "Aluno(a), digite seu nome para jogar!", "Nome do aluno(a):",  JOptionPane.INFORMATION_MESSAGE);  
    pontos.nome = aux;
    pontos.nivel="Fácil"; 
//    this.dispose();
    new NewJFrame().setVisible(true);

Tchauzin!

Pessoal, vlw pela ajuda, mas consegui encontrar o problema!!!

neste código:

new playerIII(); if(BD.getConnection()) { String sql = ""; sql = "INSERT INTO recordes (nome, nivel, pontuacao) Values('" + pontos.nome + "','" + pontos.nivel + "','" + pontos.ponto + "')"; int r = BD.runSQL(sql); } new certosom(); JOptionPane.showMessageDialog(null, "Sua pontuação foi salva!","Recorde:",JOptionPane.INFORMATION_MESSAGE); if (pontos.id > 0) { pontos.id = 1; } this.dispose(); new menu().setVisible(true);

a linha onde mostra a variavel pontos.nome deve ser trocada correspondente ao jLabel em q eu exibe o valor digitado, pq como disse antes, o nome digitado é mostrado em um label, e depois salvo na tabela. Entao, para dar certo, ñ se joga a variavel direto pra tabela (q no caso é pontos.nome) mas sim aonde ela está sendo mostrada (q é o jLabel correspondente)

segue abaixo o código corrigido:

new playerIII(); if(BD.getConnection()) { String sql = ""; sql = "INSERT INTO recordes (nome, nivel, pontuacao) Values('" + jLabel4.getText() + "','" + pontos.nivel + "','" + pontos.ponto + "')"; int r = BD.runSQL(sql); } new certosom(); JOptionPane.showMessageDialog(null, "Sua pontuação foi salva!","Recorde:",JOptionPane.INFORMATION_MESSAGE); if (pontos.id > 0) { pontos.id = 1; } this.dispose(); new menu().setVisible(true);