Dúvidas sobre implementação de jogo

Olá, tudo bem?

Amigos, é o seguinte: estou desenvolvendo, entre outras coisas, jogos que usam baralho padrão, digamos assim. Pois bem, alguém (ou “alguéns”, kkk ^^) poderia dar luz (eita, kkk ^^) neste caso?

Preciso exibir a “mão do jogador” (5 cartas, por exemplo), uma ao lado da outra.

  1. Uma função: ao clicar numa e arrastar soltando sobre outra (sem a carta vir com o mouse), elas trocam de lugar;

  2. Outra função: onde é soltada uma carta (que dessa vez não fica estática onde ela estava até soltar o clique, ela “acompanha o mouse”) e ao soltar ela fica entre as duas dos lados, digamos (isso se ela não ficar como primeira ou última, já que vai estar com apenas uma ao lado…);

  3. Uma outra função: ao clicar numa carta ela sai da “mão do jogador”, ou seja da “linha” com as outras e vai para o centro da tela, por exemplo, mas sem precisar arrastar…

Obs. 1: Melhor usar labels (para as cartas?), imagens (para a mesa, etc.?) e/ou o q.?

Obs. 2: Para as cartas (caso queira usar cartas e essas…), há umas imagens possíveis aqui, por exemplo (http://pt.wikipedia.org/wiki/Baralho). Ah, para a mesa, pode ser qq. imagem mesmo… Pode ser até um wallpaper comum…

Obs. 3: Como criar a janela mesmo?

Aguardando ajuda… ^^

Até mais.

Abraço! XD

http://www.pontov.com.br/site/java/48-java2d

Muito grato!