Preciso que a resposta final( os nomes ordenados em ordem alfabética) apareçam com o JOptionPane mas só que digito JOptionPane.showInputDialog no lugar de Sstem.out.println e não dá certo!
e o (nome[n]) era pra ser (nome[i]), mas se coloco i, dá erro do mesmo jeito!
Dica: use as tags code para formatar o seu código [ code ]
J
juniorfreire
se vc colocar o array.sort(nome) antes do for do JOPtionPane ai vai funcionar
raisabc
saoj:
Qual o erro que dá?
Dica: use as tags code para formatar o seu código [ code ]
SE EU COLOCO System.out.println(nome[n]); o programa compila mas na hora de rodar e aparecer a mensagem final sai do JOptionPane e ao invés de aparecer o resultado com o JOptionPane, volta pra tela preta e aparece escrito assim " Exception is thread “main” java.lan.ArrayIndexOutOfBoundsException: 2 at OrdenaNomes.main<OrdenaNomes.java:23>
SE EU COLOCO System.out.println(nome[i]); o programa não compila e aparece erro nesta linha dizendo: cannot find symbol variable i
e agora?
raisabc
tirei o Array.sort(nome) do lugar q ele tá e coloquei antes do primeiro for.
O programa compilou mas na hora de executar apareceu várias coisas escritas na tela preta e saiu!
jzf
Oi Raisa,
fiz algumas mudanças no código e rodou normalmente, ou seja, imprimiu todos os nomes digitados de forma ordenada.
importjavax.swing.*;importjava.util.Arrays;publicclassOrdenaNomes{publicstaticvoidmain(Stringargs[]){intn=Integer.parseInt(JOptionPane.showInputDialog(null,"DIGITE A QUANTIDADE DE NOMES:","Entrada",3));String[]nome=newString[n];for(inti=0;i<n;i++){nome[i]=JOptionPane.showInputDialog(null,"Digite "+(i+1)+"º Texto: ","Ordenação das Palavras",3).trim();}Arrays.sort(nome);for(inti=0;i<n;i++){System.out.println(nome[i]);}}}
ajudou?
raisabc
jzf:
Oi Raisa,
fiz algumas mudanças no código e rodou normalmente, ou seja, imprimiu todos os nomes digitados de forma ordenada.
importjavax.swing.*;importjava.util.Arrays;publicclassOrdenaNomes{publicstaticvoidmain(Stringargs[]){intn=Integer.parseInt(JOptionPane.showInputDialog(null,"DIGITE A QUANTIDADE DE NOMES:","Entrada",3));String[]nome=newString[n];for(inti=0;i<n;i++){nome[i]=JOptionPane.showInputDialog(null,"Digite "+(i+1)+"º Texto: ","Ordenação das Palavras",3).trim();}Arrays.sort(nome);for(inti=0;i<n;i++){System.out.println(nome[i]);}}}
ajudou?
ele roda normalmente, mas no final do programa na hora de exibir a lista dos nomes ordenados está aparecendo na tela preta e não na tela do JOptionPane. isso que não estou conseguindo fazer!
jzf
Deixa ver se entendi, você preenche o vetor de nomes corretamente com o JOptionInputPane, certo? O que você quer é que a exibição dos dados inseridos seja dentro de um JOptionPane também, é isso?
Skull_Drummer
Já tentou usar o JOptionPane.showMessage(); com o nome informado no parâmetro?
jzf
Pelo que entendi é isso que você quer…
importjavax.swing.*;importjava.util.Arrays;publicclassOrdenaNomes{publicstaticvoidmain(Stringargs[]){intn=Integer.parseInt(JOptionPane.showInputDialog(null,"DIGITE A QUANTIDADE DE NOMES:","Entrada",3));String[]nome=newString[n];for(inti=0;i<n;i++){nome[i]=JOptionPane.showInputDialog(null,"Digite "+(i+1)+"º Texto: ","Ordenação das Palavras",3).trim();}Arrays.sort(nome);for(inti=0;i<n;i++){JOptionPane.showMessageDialog(null,nome[i]);}}}
raisabc
jzf:
Pelo que entendi é isso que você quer...
importjavax.swing.*;importjava.util.Arrays;publicclassOrdenaNomes{publicstaticvoidmain(Stringargs[]){intn=Integer.parseInt(JOptionPane.showInputDialog(null,"DIGITE A QUANTIDADE DE NOMES:","Entrada",3));String[]nome=newString[n];for(inti=0;i<n;i++){nome[i]=JOptionPane.showInputDialog(null,"Digite "+(i+1)+"º Texto: ","Ordenação das Palavras",3).trim();}Arrays.sort(nome);for(inti=0;i<n;i++){JOptionPane.showMessageDialog(null,nome[i]);}}}
exatamenteeeee!!! mas só q eu quero q todos os nomes apareçam numa lista e não um por um.
jzf
Bom então em vez fazer o código vou dizer o que fazer, ok?
Você tira esse JOptionPane.showMessageDialog do loop. Faz uma variavel string receber os nomes concatenando algo como String+= nome[i]+"\n" e depois manda essa string ser escrita no JOptionPane.showMessageDialog(null, stringfinal);
ok?
G
guilherme_marques
você tem de colocar em uma string o vetor inteiro.
tenta fazer o segunite
Stringlista="Os nomes são:\n";for(inti=0;i<n;i++){String=+nome[i]+"\n";}JOptionPane.showMessageDialog(null,lista);
apaga a minha mensagem moderador, responderam ao mesmo tempo
raisabc
jzf:
Bom então em vez fazer o código vou dizer o que fazer, ok?
Você tira esse JOptionPane.showMessageDialog do loop. Faz uma variavel string receber os nomes concatenando algo como String+= nome[i]+"\n" e depois manda essa string ser escrita no JOptionPane.showMessageDialog(null, stringfinal);