Panel dentro de Panel  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
xpaulinhox
Entusiasta Java
[Avatar]

Membro desde: 08/07/2008 12:15:02
Mensagens: 22
Offline

Galera é coisa muito simples mas não sei como procurar, pois já tentei várias formas mas não encontrei então vou postar aqui, que vocês vão tirar de letra.

Seguinte, estou fazendo um projetinho em java para a facul.

Neste projeto eu tenho uma janela com menus e dependendo do menu escolhido abre um novo layout mas dentro da mesma janela.

Exemplo:
Menu - funcionário => ao clicar abre um formulário referente a funcionário
Menu - cargo => ao clicar abre um formulário referente a cargo.

O que eu tenho hoje é mais ou menos assim.

Classe principal que monta a janela com os menus e o contentPane() dela só tem um label escrito "Bem Vindo"



A dúvida é se nessa minha classe FuncionarioGui que eu chamo no actionPerformed eu tenho que criar uma nova window e fazer o mesmo processo que nesta principal ou se eu tenho que usar o mesmo contentPane() e algumas outras dúvidas mais.

Gostaria se possível um link para algum tutorial, artigo, dica alguma coisa bem simples explicando esta parte só para eu poder continuar o projeto.

OBS: Acho minha dúvida é bem básica e simples mas o post ficou um pouco grande pela minha dificuldade de expressar o que eu quero.

Muito obrigado e desculpa qualquer coisa.



xpaulinhox
Entusiasta Java
[Avatar]

Membro desde: 08/07/2008 12:15:02
Mensagens: 22
Offline

Nunca pensei que fosse tão difícil de saber como fazer isto em java.

Será que alguém não tem um projeto pronto para eu tomar de exemplo?

Ou será que não foi compreendido o que eu falei?
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Se sua classe FuncionarioGUI estender JPanel, você deve fazer o seguinte:

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
ingridfarabulini
JavaChild
[Avatar]

Membro desde: 20/03/2010 14:07:00
Mensagens: 123
Localização: Canasvieiras - SC
Offline

Eu também tenho uma dúvida quanto essa relação entre paineis em uma mesma janela.
Minha janela principal exibe os botões para que o usuário escolha uma determinada opção de diversos assuntos distintos que compões o sistema, exemplo:

-JanelaPrincipal (Agenda)
--JButton's
---> Cadastrar Pessoa
---> Consultar Pessoa
---> Cadastrar Evento
---> Consultar Evento
---> Consultar Calendário

Todas essas opções estão disponíveis para serem realizadas sempre na mesma JFrame (sem ficar recriando JFrame novo a cada nova tela).

Se clicar em "Cadastrar Pessoa" a seqüência a ser realizada seria esta:
1) Mostrar painel de cadastro pessoa. O usuário preenche e clica no botão "Cadastrar";
2) Se feito com sucesso, mostrar painel de "Sucesso". Caso contrário, se mantem no mesmo painel apenas exibindo a mensagem de erro;
3) Caso opção 2 seja concretizada, então um botão de "Cadastrar Evento" é habilitado no painel de "Sucesso";
4) Caso o usuário queira cadastrar um evento, então clica-se em "Cadastrar Evento". Então é mostrado o painel de cadastro de evento;
...

Veja, a minha pergunta é simples: Esses painéis devem estar em classes diferentes quando o assunto é diferente ("Pessoa" diferente de "Evento") ou todos os painéis devem ficar juntos em uma mesma classe onde também estará a instancia do JFrame?
Se forem ficar separados, quem é responsável pelo controle de fluxos de tela de forma que os painéis distintos não fiquem extremamente acoplados com outros (painel instanciando painel)?
Teria que passar a instancia do JFrame para cada classe de painel separada para que eles sejam sempre exibidos no mesmo JFrame?

Obrigada!

A amizade começa onde termina ou quando conclui o interesse. Que mundo infeliz, onde as pessoas procuram ser melhores que as outras ao invés de ajudar umas as outras... mas uma amizade verdadeira é um amor que nunca morre. Seja feliz, mesmo sendo assim, sempre!
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Veja:

Toda a API do Swing segue os conceitos de MVC.

No caso da visualização de dados, essa imagem diz tudo. O modelo (por exemplo a classe Pessoa) será exibido pela visão. Nesse caso, em especial, o controlador não tem uma utilidade específica.

Já no caso de inserção de dados (que é o seu caso), a visão será um formulário de preenchimento (inicialmente em branco) e o controlador será responsável por receber eventos da visão. Especificamente falando, sua classe de controlador implementará ActionListener. Quando o botão "Cadastrar" na visão for pressionado, o controlador será notificado; ele deve ler os dados e atualizar o modelo, criando um novo objeto Pessoa e o incluindo em um banco de dados se necessário.

Respondendo às suas perguntas:

ingridfarabulini wrote:Esses painéis devem estar em classes diferentes quando o assunto é diferente ("Pessoa" diferente de "Evento") ou todos os painéis devem ficar juntos em uma mesma classe onde também estará a instancia do JFrame?

Não há uma regra para isso, mas por questão de organização é recomendável mantê-las em classes separadas.
ingridfarabulini wrote:Se forem ficar separados, quem é responsável pelo controle de fluxos de tela de forma que os painéis distintos não fiquem extremamente acoplados com outros (painel instanciando painel)?

O controlador, que deve ler os dados inseridos na visão, atualizar o modelo e definir o que será exibido pela visão (por exemplo, a tela de sucesso ou de erro).
ingridfarabulini wrote:Teria que passar a instancia do JFrame para cada classe de painel separada para que eles sejam sempre exibidos no mesmo JFrame?

Não. Mas teria que passar sua janela para o controlador alterar os painéis conforme necessário (se fizer isso por meio de uma interface o acoplamento será menor).

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team