Qual a melhor forma de criar interações nas "janelas"
3 respostas
F
fredorlima
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…
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.