Como abrir jOptionPane em threads?

Galera, estou trabalhando com threads. Minha thread chama um outro método de minha classe que usa alguns jOptionPanes. O problema é que quando eu tento abrir esses jOptionPanes (mostrar eles para o usuário) de dentro de meu método secundário, abre apenas as bordas da janela, o título da janela e os botões de fechar e talz. O “conteúdo” da janela não aparece (fica transparente).

Alguém sabe como resolver isso sem precisar abrir o jOptionPane de dentro de thread?

Muito Obrigado!

Não entendi muito bem o que você está fazendo… mas que fique claro que se houver algum laço no seu programa provavelmente ele é o culpado disso. Coloque aqui seu código para podermos ajudar.

Vamos ver se agora consigo me expressar melhor.
Eu tenho isso:

Public void meuMetodo () { JOptionPane.showMessageDialog(null, "Titulo", "oi", JOptionPane.INFORMATION_MESSAGE); }

class minhaThread implements Runnable { public void run () { meuMetodo(); } }
Se eu chamar a Thread agora, o OptionPane não abre corretamente. Dele é possível visualizar apenas as bordas da janela (barra de título), os botões de minimizar e fechar. A parte onde deveria aparecer “oi” (conteúdo da janela), não aparece (fica transparente (sem conteúdo)).

Só que se eu fizer isso aqui:

class minhaThread implements Runnable { public void run () { JOptionPane.showMessageDialog(null, "Titulo", "oi", JOptionPane.INFORMATION_MESSAGE); } }
Tudo funciona como deve funcionar.

Gostaria de saber porque isso acontece.

vlw

Oi Alex, tembém estou tendo o mesmo problema que voçê, pelo visto ninguém respondeu…

Você já conseguiu resolver?

Abraço.

JOptionPane é um método do Swing que deve ser chamado apenas, se possível, dentro da thread principal do Swing.
Se isso não for feito, vai dar caca mesmo, como você deve ter percebido.
Para tanto, você precisaria provavelmente chamar SwingUtilities.invokeLater dentro da sua thread (argh) para poder forçar a chamada de JOptionPane dentro da thread principal do Swing.

Putz…vai ficar um bacalhau…hahaha…
Valeu cara! Brigadao…