JControlPanel.showInternalMessageDialog() dando RunTimeException

2 respostas
M

Segue o algoritimo

public static void main(String args[]) { int cont = 0; int positivo = 0; for(int b = 0; b<3; b++) { double i = Math.random() * 10+1; double f = Math.random() * 10+1; String t = JOptionPane.showInputDialog("Quanto é " +(int)i+ " vezes " + (int)f +" ?"); int total; try{ total = Integer.parseInt(t);} catch(NumberFormatException e) { System.out.println("Valor inválido"); total = 0;} cont++; i = (int)i; f = (int)f; if(total == i*f) { positivo++; JOptionPane.showInternalMessageDialog(null, "Resultado","Correto", JOptionPane.PLAIN_MESSAGE); } else System.out.println("Errou"); } double popup = (double)positivo/cont; popup = popup*100; System.out.println("Média: "+popup);}}

Como vocês podem ver, quando vai verificar se a resposta está certa, eu coloquei um JOptionPane.showInternalMessageDialog(null, “Resultado”,“Correto”, JOptionPane.PLAIN_MESSAGE);, eu pesquisei esse método e fiz ele funcionar em outra classe, mas nessa fica dando erro de ParentComponent does not have a valid parent.

eu li a api algo sobre JFrame, mas eu tentei criar um e não funcionou, alguem pode me explicar qual é o erro que está acontecendo?
como usar o JOptionPane corretamente, se estou pecando em alguma coisa.
Algum tutorial que explice passo a passo a usar as classes da Javax, eu intendo ingles mas a API tá complexa nessas classes.

2 Respostas

M

resolvido!

M

A método correto era:

JoptionPane.showMessegeDialog(/* argumentos */);

Certo?
O showInternalMessageDialog é pra criar diálogos dentro de uma janela já existente (ou seja precisa de um parent). Como o primeiro parâmetro foi null, deu aquele erro.

Criado 2 de dezembro de 2008
Ultima resposta 2 de dez. de 2008
Respostas 2
Participantes 2