JDesktop x JInternalFrame

5 respostas
R

Bom dia amigos do fórum, como todos já sabem eu sou iniciante na linguagem e agora que estou montando meus primeiros programas funcionais, e surgiu uma dúvida referente ao uso de JDesktop e JInternalFrame:

Eu já aprendi aqui no fórum que eu sempre preciso criar um Jdesktop para chamar os frames internos, porém o meu caso é o seguinte, é uma aplicação onde eu tenho uma tela principal que vai chamando os JInternalFrames ao clicar no botão equivalente, meu sistema vai ter aproximadamente umas 35 telas diferentes, então aqui surge a dúvida, eu devo instanciar, inicializar e esconder todas essas telas ao carregar a aplicação principal ou instancio e inicializo apenas quando clicar no botão referente a tela?

É claro que não posso esquecer do consumo de memória também, pois não quero que a aplicação se torne pesada demais.

Desde já obrigado!

5 Respostas

R

Meu conselho é criar os frames internos apenas no momento em que realmente precisar deles, para que não consumam recursos desnecessariamente.

R

Entendi, eu ao clicar no botão eu instacio e inicializo ele.

Lucas_Abbatepaolo

Eu te aconselharia a ir criando conforme a necessidade e depois de utilizala (toda vez q o usuario clicar no botão fechar…) vc libera a variavel para que o garbage libere esta memoria que foi alocada

R

Até aqui tudo bem, agora uma dúvida bem boba, toda vez que eu crio um novo frame ou jdialog o eclipse automaticamente coloca a linha "public static void main (String [] args){…}

Me corrijam se eu estiver errado, esse comando eu só preciso no frame principal do meu aplicativo, no resto eu posso apagar, e manter só o método construtor, correto?

discorpio

Bom dia a todos.

ricksouto:
Até aqui tudo bem, agora uma dúvida bem boba, toda vez que eu crio um novo frame ou jdialog o eclipse automaticamente coloca a linha "public static void main (String [] args){…}

Me corrijam se eu estiver errado, esse comando eu só preciso no frame principal do meu aplicativo, no resto eu posso apagar, e manter só o método construtor, correto?

O método starter “main” só é necessário no Frame principal, pois ele só server para startar (iniciar a aplicação) que uma vez instanciado o Frame principal, os demais frames ao ser instanciado, basta apenas torná-lo visíveis com o método setVisible(true), e mesmo que o método starter “main” seja configurado nos demais frames, não serão utilizados, eis que a classe principal passa ser o Frame principal, portanto pode apagá-los sem problema.

Só mais um conselho, se voce está utilizando JInternalFrames, então utilize também um JDesktopPane que é um container de JInternalFrames e este passa a controlar todos os Frames instanciados, abertos ou não, dentro de sua Janela.

No que tange a utilizar apenas instanciar um Frame por vez, no momento em que utilizá-lo, o pessoal recomenda isto bastante, em razão de evitar o máximo o consumo de memória. Entretanto, ao configurar a sua aplicação com JInternalFrames, voce está optando por configurar a sua aplicação como MDI (Multiples Documents Interface ou Interface de Documentos Múltiplos), isto significa dizer que haverá momementos em que você necessitará abrir duas janelas ou Frames ao mesmo tempo, no caso abrir a Frame de Vendas e Estoque com janelas dividas ou menores que o JDesktopFrame.

Se voce optar por abrir somente um Frame por vez, então opte por utilizar o sistema SDI (Single Document Interface ou Interface de Documento Único), isto é sem JInternalFrames, apenas com JFrames ou JDialogs normais. e isto, é claro, dependerá muito da sua análise sobre a sua aplicação.

Um abraço

Criado 6 de dezembro de 2011
Ultima resposta 7 de dez. de 2011
Respostas 5
Participantes 4