Instanciar um jDialog dentro de um jInternal

Bom dia, ja dei uma pesquisada no assunto mas não encontrei nada, espero que alguem possa me ajudar.

Lá vai a dúvida:

Tenho um form venda que é jInternal e preciso instanciar um JDialog Consulta para fazer uma consulta de CNPJ.

Não consigo rodar o programa, o erro está na linha de instanciação.

erro:

constructor Consultar in clas Visualizacao.Consultar cannot be applied to given types;
required: java.awt.Frame, boolean

found: Visualizacao.Venda, boolean
reason: actual argument Visualizacao.Venda cannot be converted to java.awt.Frame by method invocation conversion

Espero que possam me ajudar.

Obrigado!!

A exceção diz que Visualizacao.Venda não pode ser convertido para java.awt.Frame. Visualizacao.Venda estende de Frame?

Digamos que seu programa seja estruturado assim:

JFramePrincipal jfp (deriva de JFrame)
–> JDesktopPane
-----> visualizacao.Venda venda(deriva de JInternalFrame)
-----------> visualizacao.Consultar (deriva de JDialog)

Como você deve saber, um JDialog requer um JFrame ou outro JDialog para que fique modal em relação a essa janela. Você precisa passar no construtor a variável jfp (que é a do JFrame), em vez de passar venda ou this (que é a do JInternalFrame).
Como é que você vai fazer isso fica como exercício.

O JinternalFrame não é uma janela, portanto, não estende de Frame nem de Dialog. Ele é só o desenho de uma janela, dentro de um JDesktopPane.
Para abrir um JDialog, você deve passar o frame onde o internalpane está.

Assumindo que o JDesktopPane estaria num JFrame, você pode fazer algo como:

JFrame window = (JFrame)SwingUtilities.getRoot(seuIternalFrame.getDesktopPane());

Ou deixar a janela principal singleton, o que facilitaria bastante o trabalho.