Swing - Animações entre JPanels, é possivel?

1 resposta
Bruno_Cardoso

Viva,

Já sou programador Java à alguns anos mas só agora é que tenho andado a brincar mais com Swing nos meus tempos livres.
Tenho uma dúvida que gostava que os programadores mais experientes em Swing me podessem resolver.
Imagine que tem dois JPanels dentro de um JFrame, é possivel tendo esses dois JPanels diferentes criar uma animação de uma seta que comece no primeiro e acabe dentro do segundo JPanel?
Já agora outro exemplo, é possivel pegar por exemplo num quadrado que esteja no 1º JPanel e arrasta-lo por programação para o 2º JPanel criando a animação dele a mover-se de um lado para o outro?

Agradeco se alguem souber responder a estas duas questões e já agora dar uma luz de como fazer ou que tipo de objectos se deve usar.

Obrigado

1 Resposta

davidbuzatto

Sim, é possível. Uma forma de se fazer isso seria fazer com que os paineis implementem algum método que diga, um para o outro, a posição que está a seta, e dependendo desta posição, a imagem vai sendo renderizada gradualmente no outro painel.

Por exemplo:
Painel Inicial diz ao Painel Final que a seta está na posição x.
Quando a seta estiver na posição x + 10 o painel 2 começa a renderizar a seta.
Vc vai precisar de uma thread que faça isso para vc.

Eu pensei da seguinte forma.
Primeiro vc precisa criar um método que dia se vc está clicando/arraastando o quadrado. Se estiver, vc limpa o painel, e começa a desenhar o quadrado num painel não opaco que deve ficar numa camada acima dos dois painéis (vc vai precisar usar um LayeredPane). Soltando o clique, o quadrado é enviado ao painel correto, no final da animação o quadrado é desenhado no painel e limpo do painel não opaco.

Espero que isso possa te ajudar :smiley:

Falow!

Criado 29 de abril de 2007
Ultima resposta 30 de abr. de 2007
Respostas 1
Participantes 2