JFrame e JDialog

Olá meus colegas de linguagem.
Estou com uma dúvida aqui, estou começando um sistema aqui e estou na dúvida em relação a utilizar JFrame e JDialog. Programei muito tempo em delphi e utilizava um sistema de janelas pai e filho MDI… No Java eu posso obter os mesmos resultados com JFrame e JDialog?

Olá, em Java para trabalhar com sistema de janelas pai e filhos você pode
utilizar o JFrame como pai e JInternalFrame como filhas.

O JDialog pode ser usado por exemplo para mostrar um barra de loading
para o usuário.

Usar MDI está ultrapassado faz muito tempo. Nem o Word ou o Excel, que criaram esse conceito, funcionam mais desse jeito.

Se seu sistema for muito complexo em termos de janelas, pode tentar usar o NetBeans Platform ( http://netbeans.org/features/platform/ ) ou o Eclipse RCP ( http://wiki.eclipse.org/index.php/Rich_Client_Platform ) que já lida corretamente com todos aqueles problemas como janelas, impressão etc.

[quote=argentinaluiz]Olá, em Java para trabalhar com sistema de janelas pai e filhos você pode
utilizar o JFrame como pai e JInternalFrame como filhas.

O JDialog pode ser usado por exemplo para mostrar um barra de loading
para o usuário.[/quote]

Segui suas dicas e deu certo. A cada dia me surpreendo com o Java! Legal mesmo. Valeu man.
Que Deus lhe abençoe. :smiley:

Java é ótimo!

Divirta-se com java :slight_smile:

Caros,

Sou novo no Java e estou tentando fazer a mesma coisa, mas não consegui abrir o formulario filho. Fiz conforme informado pelo argentinaluiz, mas não deu certo.
Por favor me ajudem?

[quote=Fabio Luiz Vieira]Caros,

Sou novo no Java e estou tentando fazer a mesma coisa, mas não consegui abrir o formulario filho. Fiz conforme informado pelo argentinaluiz, mas não deu certo.
Por favor me ajudem?[/quote]

O que você fez, o que não fez? Não curto muito InternalFrame não.
Prefiro usar cardLayout ou tabbedPane. Mas enfim, posta seu código.

Este é o meu codigo para abrir o internalframe que seria o frame filho.

    JInternalFrameCliente jfcliente = new JInternalFrameCliente();
    jfcliente.show();

Eu não sei nada de Java!!! :smiley:

Você tentou assim?

//cria o DesktopPane
theDesktop = new JDesktopPane();
//adiciona seu desktoppane no JFrame. Supondo que sua classe herda (extend) JFrame 
getContentPane().add( theDesktop );

//adiciona o internal frame no desktoppane
theDesktop.add(seu_internal_frame);
//para mostrar seu internal_frame
seu_internal_frame.setVisible(true);

[quote=entanglement]Usar MDI está ultrapassado faz muito tempo. Nem o Word ou o Excel, que criaram esse conceito, funcionam mais desse jeito.

Se seu sistema for muito complexo em termos de janelas, pode tentar usar o NetBeans Platform ( http://netbeans.org/features/platform/ ) ou o Eclipse RCP ( http://wiki.eclipse.org/index.php/Rich_Client_Platform ) que já lida corretamente com todos aqueles problemas como janelas, impressão etc. [/quote]

Faço minhas as palavras do Entanglement.
Me parece que a voz da experiência veio a esse tópico e foi solenemente ignorada.

Discordo que as dicas/palavras do Entanglement foram ignoradas!
Foi uma dica ótima para alertar quem desenvolve sistemas e/ou quem está começando a mexer com java.

Temos que simplesmente tirar as dúvidas dos colegas, o foco principal era esse. Nada aqui citado foi inexperiente, porque não foi exposto que se ia fazer um sistema pra comercializar com MDI ou que MDI é melhor que outro conceito de interface, foi apenas tirado a dúvida dos colegas. Todas as dicas são muito válidas.
Não tem-se que impor um conceito só porque está ultrapassado, apenas alertar sabiamente igual o colega fez. De fato MDI está ultrapassado e não é bom usa-lo mais,
mas se alguém quer trabalhar, manipular MDI é um bom aprendizado, não tem problema nenhum nisto, deixa.

Temos que nós da área da computação, ser mais humildes e menos arrogantes. Todos nós.

Acho que vale ressaltar que o MDI do Java não se comporta da maneira padrão:

  • Não são criadas barras de rolagem caso a janela saia para fora da tela;
  • A barra de título não desaparece quando o MDI é maximizado;
  • Há várias funcionalidades que existem em frames, mas não em MDIs;

De maneira geral, é uma implementação bastante pobre.

Perfeito ViniGodoy :smiley: