ordenação de valores com JOption e quebra de linha

3 respostas
T

Boa noite!
preciso fazer um programa que ordene os valores recebidos de um vetor através do JOptionpane.Inputdialog e que no final exiba uma JOptionPane com o resultado ordenado e uma quebra de linha a cada 10 valores.

bem isso é o que fiz ate agora

import java.util.Arrays;

import javax.swing.JOptionPane;

public class OrdenarValor{

    public static void main(String[] args){
        int[] vet;
        String retorno;
        vet = new int[3];
        for(int i=0; i<vet.length; i++){
            retorno = JOptionPane.showInputDialog("Digite o valor: ");
            vet[i] = Integer.parseInt(retorno);
        }

        Arrays.sort(vet);   
        JOptionPane.showMessageDialog(null,"Seu vetor ordenado: [");   
        for(int i=0; i<vet.length; i++) {
            JOptionPane.INFORMATION_MESSAGE (null,vet[i]);
        }
               
              
    }
}

mas da erro na hora de exibir os valores

se puderem me ajudar ver o que estou errando

ps: tenho duvida tbm na quebra de linha, pensei em especificar a coluna como 10…

desculpa a pergunta bem primaria :oops: :oops: é que realmente uso o java a pouco tempo e não consegui nada até agora que possa me ajudar nisso! :stuck_out_tongue:
:stuck_out_tongue:
:smiley:

3 Respostas

doug

Olá

Creio que esteja no caminho correto, porém acho que você se enrolou na hora de imprimir o resultado.

Para imprimir:

String numeros = new String();
        for(int i=0; i<vet.length; i++) {
        	numeros += vet[i] + ",";
        }
        //Retira a virgula, jeito mais facil... poderia fazer a logica dentro do for
        numeros = numeros.substring(0, numeros.length()-1);
        JOptionPane.showMessageDialog(null,"Seu vetor ordenado: [" + numeros + "]");

Armazena em uma string depois concatena com o que vocÊ vai dar um showMessage.

Não entendi. São 10 valres que você tem que capturar?

Caso seja tem que mudar essa linha:

vet = new int[3];  
//para
 vet = new int[10];

Espero ter ajudado
Flwss>

T

Nossa muito obrigada!
desculpa acho q enrolei pra explicar essa parte, seria assim ==> o programa vai abrindo JoptionPane.inputdialog e a pessoa vai inserindo informação quando ela quiser parar ela clica em cancelar e aparece uma ultima mensagem com todas as informaçoes, como a pessoa pode inserir ate quando quiser, a caixa de dialogo pode ficar muito grande ai teria que quebrar a cada 10 dados inseridos.

==> eu so coloquei vet[3] para testar o JOptionPane, não tem valor definido
Nesta parte que não sei como prosseguir.

esta funcionando e ordenando direitinho, mas queria saber se existe a possibilidade de não especificar o tamanho do vetor e o usuario ficar livre para colocar quantos dados quiser. ?. , e quando ele nao quiser mais ele aperta cancelar e aparece a caixa de mensagem com o vetor ordenado, da pra fazer isso com este mesmo JOptionPane?
Se existir terei que mudar aquela parte do if da quebra de linha, teria que criar um laço pra pular linha a cada 10?

olha o que eu consegui até agora: codigo atual ==>

import java.util.Arrays;


import javax.swing.JOptionPane;


public class OrdenarValor{


public static void main(String[] args){
int[] vet;
String retorno;
vet = new int[19];
for(int i=0; i<vet.length; i++){
retorno = JOptionPane.showInputDialog("Digite o valor: ");
vet[i] = Integer.parseInt(retorno);
}




Arrays.sort(vet);


String resultado="";
for(int x=0;x<vet.length;x++){
resultado+=String.valueOf(vet[x])+" "; 
if(x==9){
resultado+="\n";
}
if(x==19{
resultado+="\n";
}
}
JOptionPane.showMessageDialog(null,"Seu vetor ordenado:\n"+resultado+"]");


}
}
T

Consegui agora!
Muito obrigada!

Criado 28 de outubro de 2010
Ultima resposta 30 de out. de 2010
Respostas 3
Participantes 2