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!
O que faço? :roll:
import javax.swing.*;
import java.util.Arrays;
public class OrdenaNomes
{
public static void main( String args[] )
{
int n = Integer.parseInt(JOptionPane.showInputDialog(null, “DIGITE A QUANTIDADE DE NOMES:”,“Entrada”,3 ));
String[] nome = new String[n];
Dica: use as tags code para formatar o seu código [ code ][/quote]
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
fiz algumas mudanças no código e rodou normalmente, ou seja, imprimiu todos os nomes digitados de forma ordenada.
import javax.swing.*;
import java.util.Arrays;
public class OrdenaNomes {
public static void main(String args[]) {
int n = Integer.parseInt(JOptionPane.showInputDialog(null,
"DIGITE A QUANTIDADE DE NOMES:", "Entrada", 3));
String[] nome = new String[n];
for (int i = 0; i < n; i++) {
nome[i] = JOptionPane.showInputDialog(null,
"Digite " + (i + 1) + "º Texto: ",
"Ordenação das Palavras", 3).trim();
}
Arrays.sort(nome);
for (int i = 0; i < n; i++){
System.out.println(nome[i]);
}
}
}
fiz algumas mudanças no código e rodou normalmente, ou seja, imprimiu todos os nomes digitados de forma ordenada.
import javax.swing.*;
import java.util.Arrays;
public class OrdenaNomes {
public static void main(String args[]) {
int n = Integer.parseInt(JOptionPane.showInputDialog(null,
"DIGITE A QUANTIDADE DE NOMES:", "Entrada", 3));
String[] nome = new String[n];
for (int i = 0; i < n; i++) {
nome[i] = JOptionPane.showInputDialog(null,
"Digite " + (i + 1) + "º Texto: ",
"Ordenação das Palavras", 3).trim();
}
Arrays.sort(nome);
for (int i = 0; i < n; i++){
System.out.println(nome[i]);
}
}
}
ajudou?[/quote]
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!
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?
import javax.swing.*;
import java.util.Arrays;
public class OrdenaNomes {
public static void main(String args[]) {
int n = Integer.parseInt(JOptionPane.showInputDialog(null,
"DIGITE A QUANTIDADE DE NOMES:", "Entrada", 3));
String[] nome = new String[n];
for (int i = 0; i < n; i++) {
nome[i] = JOptionPane.showInputDialog(null,
"Digite " + (i + 1) + "º Texto: ",
"Ordenação das Palavras", 3).trim();
}
Arrays.sort(nome);
for (int i = 0; i < n; i++){
JOptionPane.showMessageDialog(null, nome[i]);
}
}
}
public class OrdenaNomes {
public static void main(String args[]) {
int n = Integer.parseInt(JOptionPane.showInputDialog(null,
“DIGITE A QUANTIDADE DE NOMES:”, “Entrada”, 3));
String[] nome = new String[n];
for (int i = 0; i < n; i++) {
nome[i] = JOptionPane.showInputDialog(null,
"Digite " + (i + 1) + "º Texto: ",
"Ordenação das Palavras", 3).trim();
}
Arrays.sort(nome);
for (int i = 0; i < n; i++){
JOptionPane.showMessageDialog(null, nome[i]);
}
}
}
[/code][/quote]
exatamenteeeee!!! mas só q eu quero q todos os nomes apareçam numa lista e não um por um.
Bom então em vez fazer o código vou dizer o que fazer, ok?
for (int i = 0; i < n; i++){
JOptionPane.showMessageDialog(null, nome[i]);
}
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);
[quote=jzf]Bom então em vez fazer o código vou dizer o que fazer, ok?
for (int i = 0; i < n; i++){
JOptionPane.showMessageDialog(null, nome[i]);
}
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);