Como posso fazer com que o jDialog abra após o jFrame já estar sendo exibido?
8 respostas
F
fantasma199
Olá, como tenho pouco conhecimento em JAVA, ainda tenho algumas duvidas simples, e acredito que vocês possam me esclarecer, pois de tao basica que a mesma é, nao encontro solução.
é o seguinte, eu estou desenvolvendo um aplicativo desktop em JAVA, utilizando o NetBeans 6.9, e logo ao abrir a tela principal, gostaria de exibir um jDialog solicitando dados, porém gostaria que a tela principal ja estivesse sendo exibida por tras… ai esta o meu problema, se eu colocar no construtor da classe a chamada para exibição do dialog ele acaba sendo carregado antes e como eh modal, interrompe a execução do frame principal. Gostaria de uma ajuda para isso…
Não sei se ficou muito claro a minha duvida.
Desde de já, Obrigado.
fazendo assim, o dialog abre antes que o frame principal seja exibido, eu gostaria que ele fosse exibido e em sequencia o dialog...
quanto ao run... em ambos estou chamando com "new x().setVisible(true);" ... onde x eh o nome da classe.
No aguardo. Obrigado.
T
THIAGOANALISTA
:-o
publicclassPrincipalextendsjavax.swing.JFrame{//construtor publicPrincipal(){JDialogdialog=newJDialog();newwelcome(this,true).setVisible(true);dialog.getContentPane().add(newJLabel("<html>feche esse dialogo<br>"+"para continuar</html>"))// seu JDialog vem aqui}....}
T
THIAGOANALISTA
como vc está fazendo seu form?
com o editor do netbeans?
T
THIAGOANALISTA
Você quer que quando acessar sua classe apareça uma menssagem?
Se for isso, eu já usei messegedialog
importjavax.swing.JDialog;importjavax.swing.JFrame;importjavax.swing.JOptionPane;publicclassMessageDialog{publicstaticvoidmain(Stringargv[]){Stringmessage="Olá\n"+"Sejá bem vindo!.";// sua mensagemJOptionPanepane=newJOptionPane(message);JDialogdialog=pane.createDialog(newJFrame(),"Mensagem");dialog.show();}}
coloque sua mensagem abaixo da sua classe
F
fantasma199
Bom, o primeiro problema resolvi, acabei criando uma outra classe "main" só para chamar as telas, e la coloquei na ordem q me convém... funcionou...
agora tenho um outro problema, quando abro o jDialog, ele bloquea ambas delas q estao aberta...
como isolar para que apenas uma fique bloqueada?
segue o codigo:
publicclassMain{/** * @param args the command line arguments */publicstaticvoidmain(String[]args){/* Abre tela principal */newPrincipal().setVisible(true);Principalprincipal=newPrincipal();// QuickConfig eh um jDialognewQuickConfig(principal,true).setVisible(true);/* abre atela de boas-vindas (Welcome eh um JFrame)*/newWelcome().setVisible(true);}}
portando eu abro dois JFrame e um jDialog.. e o dialog bloqueia meus dois frames, mesmo o parent ser o principal.
solução?
F
fantasma199
THIAGOANALISTA:
Você quer que quando acessar sua classe apareça uma menssagem?
Se for isso, eu já usei messegedialog
importjavax.swing.JDialog;importjavax.swing.JFrame;importjavax.swing.JOptionPane;publicclassMessageDialog{publicstaticvoidmain(Stringargv[]){Stringmessage="Olá\n"+"Sejá bem vindo!.";// sua mensagemJOptionPanepane=newJOptionPane(message);JDialogdialog=pane.createDialog(newJFrame(),"Mensagem");dialog.show();}}
coloque sua mensagem abaixo da sua classe
Perfeitamente, isso que acabei fazendo, e funcionou.
porém o problema com o bloqueio dos frames que eu citei, continua.
T
THIAGOANALISTA
bem, o que pude perceber, acho que vc estanciou o frame duas vezes,
olha aqui vamos corrigir:
JOptionPanepane=newJOptionPane(message); JDialogdialog=pane.createDialog(newJFrame(),"Mensagem"); // new frame, cria outro frame, tente desabilitar um dos frames, no modelo que passei ele cria o frame da classe, como vc está usando setVisible(true), aparecerá dois mesmo.dialog.show(); }}