JDialog Modal

Iai, blz?

Estou desenvolvendo uma aplicação com o netbeans, e estou com um problema.

A minha aplicação tem um JFrame principal que chama os mews JDialog’s atravez de uma barra de ferramentas e de um menu, até ai tudo certo. O problema é que mews JDialog’s estão modais, e quando chamo eles atraves de botões a primeira vez q executa eles, abre somente a a barra de titulos no canto superior esquerdo, quando clico uma segunda vez eles abrem normal com o resultado que eu quero.

Por Favor, alguem poderia me ajudar com isso?
flw, um abraço.

Hum, você tá usando setLocationRelativeTo?? Não esqueceu de dat um setSize, ou pack??

Se não for muito grande, poste o código de um de seus JDialog’s.

T+

iai cara, blz?..vlw por ter respondido.

Intão, como eu to fazendo pelo netbeans, ele msm ta gerando o codigo dos JDialog’s. Mas nos eventos dos botões e do menu de cada JDialog eu msm to xamando o setVisible(true), o setSize(585, 480), o setLocationRelativeTo(null) e o pack().

Num sei o q é, pq na segunda vez que eu clico no botão correspondente ele abre corretamente.

vc tem mais alguma sugestão. Ta complicado isso!..rsrs

Vlw hein

Posta o código de uma chamada que você faz a algum JDialog.

T+

[code]private void JMenuItemCadClientesActionPerformed(java.awt.event.ActionEvent evt) {

jDialogCadClientes.setVisible(true);
jDialogCadClientes.setSize(777, 496);
jDialogCadClientes.setLocationRelativeTo(null);

Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.getImage(“D: \System_Project\images\user_gray.png”);
jDialogCadClientes.setIconImage(img);

jDialogCadClientes.pack();
}[/code]

Esse código ai de cima é de um evento, o dos outros JDialogs estão semelhantes a esse

Vlw

Tenta colocar assim:

private void JMenuItemCadClientesActionPerformed(java.awt.event.ActionEvent evt) { Toolkit kit = Toolkit.getDefaultToolkit(); Image img = kit.getImage("D: \\System_Project\\images\\user_gray.png"); jDialogCadClientes.setIconImage(img); jDialogCadClientes.pack(); jDialogCadClientes.setLocationRelativeTo(null); jDialogCadClientes.setVisible(true); }

T+

Cara, vlw hein!

Funcionou certinho aki.

Se num for te pedir mto, será q dá pra vc me dar uma explicada pq tem q estar nessa ordem q vc colocou?

flw, um abraço!

O problema era que você estava chamando setSize e pack, e os 2 métodos possuem o mesmo proposito, só que um você tem que informar o tamanho e o outro ajuta o tamanho de acordo com os componentes que estão na tela.

Outro problema real mesmo era que vc estava chamando o setLocationRelativeTo antes do pack, e ele deve vim sempre depois, pois senão ele não tem como posicionar a tela no centro, pois ela ainda não foi desenhada.

Não sei se fui claro…

T+

foi claro sim cara.

vlw, e mto obrigado.