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.
Java é ótimo!
Divirta-se com java
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!!!
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