Qual a melhor forma de alternar entre as "telas" de um sistema?

Ola a todos!
estou aprendendo java e brincando com o netbeans tb (versao 6.9.1)
ao desenvolver um sisteminha de vendas me deparei com a seguinte questao:
qual seria a forma mais bonita de alternar entre as “telas” do sistema?
por exemplo meu sistema tera diversos cadastros e pesquisas, gostaria de organizar em telas diferentes cada um
de inicio pensei em criar varios frames e ir abrindo e fechando as janelas
mas achei mais interessante ter uma janela principal com um menu e abaixo do menu eu coloquei varios Internal Frame invisiveis
e ao selecionar uma opcao no meu ele deixara o internal frame correspondente visible

eh uma solucao que funcionou ate agora, porem me parece ser meio gambiarra nao?
tem algum jeito mais bonito de deixar uma tela principal com o menu e ir alterando as “telas”

grato

bem, eu diria q não existe a “melhor forma” de organizar as telas num prog, o melhor é analisar o seu caso (cada caso é um caso).

Eu em si uso um JFrame como a a classe primária, e abriria conforme precisando as JDialog correspondentes (fazendo praticamente o sistema em camadas, para o usuário não ficar perdido em janelas, precisando terminar a ação na janela para fecha-la/ou não =]).

Particularmente eu nao recomendo muito as internalframe como tela de cadastro pq em alguns rarissimos casos iria precisar instanciar 2 telas da mesma classe, e acho q o usuário acabaria fazendo caca xD.

vlw os esclarecimentos
eu nao manjava essa por jDialog, parece simples de trabalhar
por exemplo usei pra abrir o jDialog a seguinte linha
jDialog1.setVisible(true);

e ele abre como se fosse uma nova janela, tem como abrir o jDialog dentro do jFrame?
eh por isso q eu estava usando internal frame pq eh soh deixa visivel e insivisel q eu trabalho sempre com apenas uma janela

lendo o primeiro post, vi que vc usa a ide netbeans.

Por defaut, você apenas teria que instanciar o objeto no JFrame, e checar a classe a ser chamada.
Dando um exemplo prático:

MinhaClasse a = new MinhaClasse(this, true);
//this: seu Frame
//true: modal (a grosso modo explicando seria: se o usuário terá que finalizar o JDialog para voltar a "mecher" no frame/dialog anterior)

a.setVisible(true);
//visualizar a classe

Uma outra alternativa seria criar um formulário principal com um menu e a partir dele ir exibindo JPanels com o conteúdo desejado. Para gerenciar a mudança entre os panels pode ser utilizado o CardLayout.

Fica como uma idéia a mais. :wink:

Falou…

pow vlw msm as ideias!!!
curti esse skema do cardlayout era isso q eu keria msm…e fico fera esse skema com tabs!!!

mas soh pra confirmar…nao tem problema se eu kiser usar o jInternalFrame?
ou nao eh uma pratica comum pq nao eh mto legal?

sshurato, não gosto muito dessa abordagem e prefiro o uso de TabbedPane/CardLayout mesmo.Quadno vc tem que deixar algo “modal”, é sempre chance de problemas.

Leia mais aqui:
http://www.guj.com.br/posts/list/132290.java