Qual a melhor forma de criar interações nas "janelas"

3 respostas
F

Salve galera… esse é meu primeiro post aqui no GUJ, então desde já pesso desculpas por qualquer erro.
Enfim…

To com um projeto universidade para desenvolver em Java, mais especificamente um sistema de pós-venda para uma consecionária de veículos. Criei algumas janelas, mas vi que serão muitas, então quando vi que seriam muitas decidi ver logo a parte de transições.

A principio pensei em substituir apenas o conteúdo de um panel principal, mas pra isso precisaria usar herança, e esta ja to usando para Observers. Vi algumas soluções na internet mas nenhuma delas me agrada, são elas:

  • Criar janelas independentes, uma classe para cada janela - acho horrível, muita repetição de código, e esse negócio de esconder a anterior e exibir a nova me parece muito amador;

  • Utilizar cardLayout - como são muitas janelas geraria classes muito extensas…

Alguma sugestão?

Desde já pessoal obrigado! :?

3 Respostas

F

Encontrei a solução mesmo sem ter respostas… então vou compartilhar a minha idéia caso alguem na comunidade tenha tido o mesmo problema que eu… lá vai…

Como o JFrame possui um JPanel nativo podemos utilizar este para comportar os panels que serão utilizados.
A idéia é:

Criar as classes para os painéis com todos os seus componentes e actions separadamente;
Criar dentro dessas classes um método getPanel(); que retorna o painel que foi criado;

Dentro da classe JFrame setar o contentpanel com o painel desejado; tipo:

(resumindo…)

JFrame myframe = new JFrame();
MyClassPanel mypanel = new MyClassPanel();

(…)

myframe.setContentPanel( mypanel.getPanel() );

Espero ter ajudado! :lol:

Metal_Java_Full

JDialogs tbm sao mto bons para estabelecer interaçoes entra aplicaçoes com mtas janelas!!
vlew

sergiotaborda

Unidades de interação gráfica nem sempre são janelas. Vc precisa entender isto primeiro.
O exemplo classico é o browser. A janela é só uma, mas mesmo assim a navegação é rica.

Usar um cardlayout ou tabpane seria o correto para mudar entre unidades principais. Se vc está lançando pedido não está consultando titulos. Isso foca o usuário. Contudo quando vc está numa unidade vc precisar usar outras. Por exemplo, vc pode ir pelo menu na listagem de clientes e pesquisar por um. isto está na janela principal. Ou vc pode ir na listagem de pedidos e adiconar um pedido. O cadastro do pedido está na janela principal. Agora vc procura por um cliente para setar o campo “cliente”. Esta acção não muda a unidade principal. é ai que entra o popup / dialog. Vc abre um dialog com a mesma unidade de interação que usou quando o usuario procurava apenas por clientes na janela principal.

enfim, suas unidades de interação devem ser como paineis que vc mostra onde for necessário (janela, dialog, etc…) O painel em si é uma coisa, a forma como vc navega entre eles é outra. Muitas vezes o que muda é a navegação e não os paineis em si.Além disso vc quer reaproveitar os paneis não apenas para codificar menos mas para manter uma coesão gráfica e de interação no sistema.

Criado 12 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 3
Participantes 3