Eu tenho um frame q serve como pagina principal e nele o menu onde eu chamo telas (JDialog) e os adiciono em um JDesktopPanel…soh q estou tendo um problema sempre quando eu fecho esse JDialog ou por exemplo meu JDialog tenha um Panel q eu deixo invisivel e visivel eh gerado o seguinte erro
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
mas tudo eh executado normalmente…oq faço pra tirar esse erro??
Poste seu código, isso facilita pra nós ajudarmos…
furacao123
Ok amanha pela manha ja posto o codigo…mas eh sem segredo soh adiciono no JDesktopPanel…amanha detalho melhor
vlw
wellington7
E o resto da msg de erro? É só isso que aparece?
Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: adding a window to a container
Está dizendo aí que é ilegal adicionar uma janela dentro de um container. Embaixo dessa msg não vem mais nada?
furacao123
no menu do meu form principal ha o seguinte codigo no listener
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
JDialog empresa = new dfrmEmpresa(this, true);
empresa.setVisible(true);
dpnlPrincipal.add(empresa);
}
e no dfrmEmpresa que é um JDialog eu dou um dispose ao fechar e me retorna essa msg de erro
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImpl(Container.java:1022)
at javax.swing.JLayeredPane.addImpl(JLayeredPane.java:209)
at javax.swing.JDesktopPane.addImpl(JDesktopPane.java:470)
at java.awt.Container.add(Container.java:352)
at PaginaPrincipal.jMenuItem1ActionPerformed(PaginaPrincipal.java:219)
at PaginaPrincipal.access$700(PaginaPrincipal.java:8)
at PaginaPrincipal$8.actionPerformed(PaginaPrincipal.java:115)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
mas isso acontece em todos os JDialog q eu fecho
fabim
Que tal postar o trecho onde rola o dispose()?
furacao123
private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {
if (JOptionPane.showConfirmDialog(null, "Deseja realmente sair ?") <= 0) {
dispose();
}
}
fabim
Creio que o seu problema seja nessa linha:
dpnlPrincipal.add(empresa);
Exclua e tudo deve funcionar normalmente.
JDialogs nao podem ser adicionados a containers (JDesktopPanes, JInternalFrames, etc…)
Apenas sao vinculados a Windows (JFrame é um deles)…
Vc nao “adiciona” um Dialog a ninguem. Vc apenas diz que ele esta"preso" a tal “Window” (no caso, um JFrame)
furacao123
Resolvido era esse o problema mesmo Obrigado.
wellington7
Da proxima vez, logo de cara poste tudo que puder… codigo… erro completo… agradecimentos adiantados…