Componente que possa ser "arrastado" com destaque

Eaê, galera, blz?

Estou criando um organizador de disciplinas usando swing. Estou pensando em extender a classe JComponent e alterar seu método gráfico para criar o objeto “Disciplina”.

No entanto, queria que fosse possível ao usuário “arrastar” uma disciplina na tela de forma a mudar sua posição no organizador, o semestre em que é cursada etc, e, ao arrastá-la, fosse mostrada uma miniatura semi-transparente da disciplina sendo arrastada, como acontece quando se move arquivos no sistema operacional, por exemplo. Além disso, queria que quando o usuário passasse com uma disciplina em cima de um componente, ele ficasse em destaque, como ficam as pastas ao se arrastar miniaturas de arquivos em cima delas.

Existe algum componente da swing que já implemente métodos para esse tipo de alteração na tela?

Obrigado pela atenção!