Construindo aplicação Desktop com Java, JInternalFrame, JDesktopPane e Menu

2 respostas
java
V

Olá pessoal, estou com uma dúvida com relação à melhor maneira de utilização de JInternalFrame e o JDesktopPane.

Inicialmente, na minha aplicação, criei um JFrame para que seja meu frame principal e nele adicionei um JDesktopPane para que os JInternalFrames sejam criados dentro dele conforme o usuário utiliza a aplicação. Nessa frame principal, adicionei um menu, que deverá se manter “vivo” durante toda a execução da aplicação.

Minha dúvida é: A melhor forma é instanciar um novo JInternalFrame sempre que uma opção do menu for escolhida ou devo criar já todos os possíveis “InternalFrames” desde o começo e somente trabalhar com o “setVisible(true)” ou “setVisible(false)” durante a “navegação” do usuário? Pois se eu utilizar a propriedade de visualização do JInternalFrame, terei que sempre limpar os campos quando ele for chamado, não? Fora que eu teria que pensar em tornar todos os frames como “false” sempre que um novo frame for aberto, para que caso o usuário feche esse novo frame, a tela que ele estava utilizando não apareça sem ele ter chamado. Sendo assim, fico com a dúvida se devo instanciar um novo JInternalFrame sempre que desejar abrir ele ou devo trabalhar com a propriedade de setVisible?

2 Respostas

TerraSkilll

No fim das contas, depende da necessidade, não há uma regra universal.

Mas, pelo que você explicou, qual a vantagem de usar um JInternalFrame e ficar alternando entre visível e invisível? Pois, se ao ocultar o JInternalFrame, você apaga todo o conteúdo dele, não é mais simples logo criar um novo todo vez que ele for aberto? É só pela “praticidade” de não ter que criar o JInternalFrame de novo?

Outro ponto: por qual motivo você oculta os demais JInternalFrames quando um novo é exibido? Se é para ser assim , por que não os apaga logo, ao invés de simplesmente excluir? Ou mesmo usar JDialogs modais, que farão com que o usuário só possa ver uma tela por vez.

Abraço.

V

Acreditei que já ter os JInternalFrames carregados poderia melhorar um pouco no desempenho, uma vez não precisaria sempre estar instanciando um novo Frame, e estaria utilizando uma mesma instância sempre que o usuário desejar fazer as operações. Quer dizer que se eu instanciá-los sempre que desejar abrir uma nova janela não é pior? Pois acredito que seria uma maneira mais coerente…
Não conhecia os JDialogs modais, irei pesquisar sobre o assunto.

Só para fechar, eu poderia então, criar uma nova instancia do meu JInternalFrame sempre que eu quiser abrir uma tela e quando a operação for feita eu utilizo o método dispose? Ou para os apagar de vez devo fazer de outra forma?

Agradeço desde já sua atenção.

Abraço!

Criado 16 de agosto de 2016
Ultima resposta 17 de ago. de 2016
Respostas 2
Participantes 2