Alinhar Mensagem no JOptionPane.showMessageDialog

Pessoal Boa Tarde,

Estou com um problema, tenho umas validações na tela e depois gero uma mensagem com os erros encontrados.
Ex:

CAMPOS EM VERMELHO INCONSISTENTES       
    - NOME.......: O CAMPO É OBRIGATÓRIO
    - CPF........: O CAMPO É OBRIGATÓRIO
    - TEL FIXO...: O CAMPO É OBRIGATÓRIO
    - LOGRADOURO.: O CAMPO É OBRIGATÓRIO
    - BAIRRO.....: O CAMPO É OBRIGATÓRIO
    - CIDADE.....: O CAMPO É OBRIGATÓRIO
    - UF.........: O CAMPO É OBRIGATÓRIO

Porem quando eu coloca a mensagem no JOptionPane.showMessageDialog ela desalinha porem seu eu der um sysout da mensagem esta alinhada.

Eu tinha visto este tópico:
http://www.guj.com.br/java/110015-alinhar-a-mensagem-do-joptionpane-para-direita-
porem como a mensagem é de 2008 gostaria de saber se alguém sabe como resolver este problema.

Você tá usando \n, \t ?

		if (txtNome.getText().isEmpty()) {
			erros.append("\n");
			erros.append("    - nome.......: o campo é obrigatório".toUpperCase());
			txtNome.requestFocus();
			retorno = false;
			lblNome.setForeground(Color.RED);
		} else {
			lblNome.setForeground(Color.BLACK);
		}

Tenta assim

if (txtNome.getText().isEmpty()) {  
    erros.append("\n");  
    erros.append("\t    - nome.......: o campo é obrigatório\n".toUpperCase());  
    txtNome.requestFocus();  
    retorno = false;  
    lblNome.setForeground(Color.RED);  
} else {  
    lblNome.setForeground(Color.BLACK);  
}  

nada olha como fica.

Agora eu acho que fica certinho. rsrs

if (txtNome.getText().isEmpty()) { erros.append("\n"); erros.append("\t - nome.......:\t o campo é obrigatório\n".toUpperCase()); txtNome.requestFocus(); retorno = false; lblNome.setForeground(Color.RED); } else { lblNome.setForeground(Color.BLACK); }

alterei nos dois primeiros valores e nada ainda.

Alinhe o texto com HTML :idea:

:thumbup:

Dei uma pesquisada por cima aqui, tenho que ver o erro mais olha que interessante.
coloquei o seguinte código.

			JOptionPane.showMessageDialog(this, String.valueOf("<html><body><p align=?Left?> " + erros.toString()) + "</p></body></html>",
					"favor rever os seguintes dados:".toUpperCase(), JOptionPane.ERROR_MESSAGE);

olhe o resultado.

No Swing, o HTML que é aceito é uma versão bem restrita do HTML. Nem sei se ele aceita a tag ‘align’ - e quando o Swing não consegue aceitar algumas coisas, em vez de gerar um erro, formata as coisas errado e se perde, como você deve ter percebido.

Pegue o programa que está neste link:

http://docs.oracle.com/javase/tutorial/uiswing/components/html.html

e veja se ele aceita o HTML que você quer

Dicas:

  1. se você quer formatar tudo direitinho, você pode usar um tipo de letra monoespaçada (como Courier New). Mude a fonte e veja se fica do jeito que você quer.
  2. O correto não é usar um JOptionPane e sim uma classe derivada de JDialog que formate as coisas do jeito que você precisa.

De fato, até que fica bonitinho. Veja o que você pode fazer com o HTML do Swing: