Erro ao abrir jInternalFrame

Pessoal uso esse metodo para abrir um internalFrame dentro do meu desktopFrame, eu já o utilizo em outros frames, só que tem um deles que está dando esse erro:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container at java.awt.Container.checkNotAWindow(Container.java:431) at java.awt.Container.addImpl(Container.java:1039) at javax.swing.JLayeredPane.addImpl(JLayeredPane.java:212) at javax.swing.JDesktopPane.addImpl(JDesktopPane.java:470) at java.awt.Container.add(Container.java:365) at sistema.SistemaHome.visualizarClientes(SistemaHome.java:442) at sistema.SistemaHome.BT_ClientesActionPerformed(SistemaHome.java:348) at sistema.SistemaHome.access$1400(SistemaHome.java:25) at sistema.SistemaHome$10.actionPerformed(SistemaHome.java:192) 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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6267) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6032) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) CONSTRUÍDO COM SUCESSO (tempo total: 55 segundos)

Esse é o método que usso para chama-lo:

[code]private void visualizarClientes() throws SQLException {
if(fClientes == null){
fClientes = new FrameClientes();
}
jDesktopPane1.add(fClientes);
fClientes.setVisible(true);
int lDesk = jDesktopPane1.getWidth();
int aDesk = jDesktopPane1.getHeight();
int lwFrame = fClientes.getWidth();
int lhFrame = fClientes.getHeight();
fClientes.setLocation(lDesk / 2 - lwFrame /2, aDesk /2 - lhFrame /2);

}[/code]