Bom dia amigos,
Estou desenvolvendo um componente que consiste básicamente em um JPanel com um conjunto de JLabels encadeados formando uma tabela. Há também um segundo tipo de JLabel que se sobrepõe aos demais que serve para fazer marcações. Tenho um listener nas "células" dessa tabela que troca a cor de fundo sempre que o cursor passa sobre a mesma (mouseEntered) e desfaz quando o cursor sai de cima (mouseExited). Quando existe uma marcação sobre uma célula, eu sobreponho a ordem dos componentes, utilizando o método setComponentZOrder() do JPanel e em seguida repaint() na marcação.
Nessa hora ocorre um comportamento estranho que muda a cada execução do programa. Para algumas células a coisa funciona normalmente. O sistema muda a cor de fundo do objeto e inverte a ordem entre o JPanel e a marcação. e em outros casos o sistema troca a cor de fundo da célula e deixa uma parte da marcação escondida e isso só é desfeito quando passo o mouse sobre outra célula qualquer, dando a impressão que em alguns momentos o repaint() da célula é executado antes do da marcação e outras vezes não.
Algum colega poderia me ajudar com esse problema?