Não consigo imprimir corretamente no JOptionPane

4 respostas
M

Olá pessoal, estou fazendo um programa que simula o lançamento de dados e depois mostra os respectivos jogadores e seus resultados na tela…
Eu gero o nome dos jogadores, entre 3 e 6 caracteres. Mas estou tratando com switch, por exemplo, se o nome tiver 6 caracteres, eu adiciono apenas 5 espaço, se tiver 5 caracteres, eu aumento um espaço. Entenderam?
Mas mesmo assim está saindo tudo desordenado na tela. Alguém poderia me ajudar?

public void mostrarDados(){
	   String resultTotal = "";
	   String titulo = "Classificação";
	   titulo+= "          ";
	   titulo+= "Nome";
	   titulo+="          ";
	   for(int a=0; a<obj.getNumJogadas(); a++){
		   titulo+= "Lançamento "+ (a+1);
		   titulo+= "            ";
		   if(a == obj.getNumJogadas()-1){
			   titulo+="            ";
			   titulo+="Total";
			   titulo+="\n";
		   }
	   }
	   resultTotal = titulo;
	   for(int i=0; i<obj.getNumJogadores(); i++){
		   resultTotal+= (i+1)+"º";
		   resultTotal+="          ";
		   resultTotal+= jogadores.get(i).getNome();
		   switch(jogadores.get(i).getNome().length()){
		   case 3:
			   resultTotal+="          ";
			   break;
		   case 4:
			   resultTotal+="         ";
			   break;
		   case 5:
			   resultTotal+="        ";
			   break;
		   case 6:
			   resultTotal+="      ";
			   break;
		   }
		   for(int p=0; p<obj.getNumJogadas(); p++){
			   resultTotal+=jogadores.get(i).getDado1().get(p);
			   resultTotal+=",";
			   resultTotal+=jogadores.get(i).getDado2().get(p);
			   resultTotal+= "          ";
		   }
		   resultTotal+= resultDados.get(i);
		   resultTotal+= "\n";
		   
	   }
	   mensagem.mensagemSimples(resultTotal);
   }

4 Respostas

Anime

Oi,

Não entendi…

Pesquise sobre funções de Strings, em especial trim(), se for o que pensei… :roll:

M

Não é bem isso. Eu estou com o mesmo problema deste cara.

Obs: olhe o penultimo post do tópico…

http://www.guj.com.br/java/220096-exibindo-resultado-em-um-joptionpane#1304586

É que meu programa gera nomes aleatórios que variam de tamanho(vão 3 a 6 caracteres) e quero mostrar uma mensagem no JOPTIONPANE de todos os jogadores e seus respectivos resultados, mas não sai de forma alinhada na tela, eu tentei com o switch, de acordo com que o nome aumenta, eu diminuo um espaço, mas não consegui.
Eu quero fazer usando apenas JOptionPane.

ViniGodoy

Isso não vai ser uma tarefa fácil. O JOptionPane trabalha com fontes que não são monoespaçadas (como a courier new). Seria mais fácil você realmente escrever seu próprio JDialog, ou parar de se incomodar tanto com isso.
Se você souber HTML, poderia montar o html da saída e passar para o JOptionPane (é necessário estar entre as tags )

Outra coisa, não coloque tags inúteis no título do seu tópico como [Dúvida]. 99.99% dos tópicos do GUJ são de dúvidas, então, deixe as marcações para informações relevantes, ok?

M

ViniGodoy, muito obrigado por esclarecer. E em relação ao tópico, me desculpe. Eu não li as regras do fórum e deveria ter feito isso. Mas obrigado mesmo por ter me ajudado. :oops:

Criado 27 de agosto de 2011
Ultima resposta 28 de ago. de 2011
Respostas 4
Participantes 3