To usando JOptionPane no tratamento de exceções e tal, mas queria personalizar a mensagem da exceção e tal fazendo uma janela de exceção usando JFrame.
Com o JOptionPane, se eu coloco um gui.dispose(); depois da exibição ele só fecha a gui após fechar a janelinha do JOptionPane. Com o JFrame não da certo pq, ao criar a janela, já é executado em seguida o gui.dispose(), sem esperar o fechamento da janela igual o JOptionPane como eu queria!
Alguém sabe me dizer como faço isso?!
se for o caso, coloca um botão para só fechar quando clicar nele com um listener de ouvinte, é uma saída rápida que eu vejo.
se quiser colocar, por exemplo, com tempo ae vai ter que pesquisar como dar um wait, coisa que pesquisando um pouco você encontra.
um abraço.
Nicolas_Fernandes
Que tal:
publicInterfaceFrameextendsJFrame{publicInterfaceFrame(){JButtonbutton=newJButton("Do something");button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){try{// Faz qualquer coisa...}catch(Exceptionerr){// passa a mensagem de erro por construtor.InterfaceErroPersonalizadointerface=newInterfaceErroPersonalizado(err.getMessage());interface.setVisible(true);// Faz qualquer outra coisa aqui...this.dispose();}}});}}
e…
publicclassInterfaceErroPersonalizadoextendsJFrame{privateStringmensagemErro;publicInterfaceErroPersonalizado(StringmensagemErro){this.mensagemErro=mensagemErro;JLabellabelErro=newJLabel(mensagemErro);//alinha no centro, adiciona no form, adiciona um botão de OK e o que mais quiser.}}
ViniGodoy
No lugar de um JFrame:
Use um JDialog;
Defina a propriedade modal como true:
Isso fazer com que o método setVisible() do JDialog pare e espere a janela ser fechada. Ele também impedirá que o usuário navegue para outras janelas enquanto o dialog estiver sendo exibido.