JDialog Modal

9 respostas
cs.santos0

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.

9 Respostas

diego2005

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+

cs.santos0

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

diego2005

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

T+

cs.santos0
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();
}
cs.santos0

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

Vlw

diego2005

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+

cs.santos0

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!

diego2005

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+

cs.santos0

foi claro sim cara.

vlw, e mto obrigado.

Criado 20 de agosto de 2007
Ultima resposta 21 de ago. de 2007
Respostas 9
Participantes 2