Cursor do Mouse

4 respostas
A

Prezados Senhores

Estava precisando alterar o cursor do mouse para uma “ampulheta” durante a execução de uma determinada tarefa. Para isso, encontrei aqui no fórum o material necessário e desenvolvi um método conforme eu precisava.
Para alterar o cursor do mouse, é necessário passar por todos os objetos da tela alterando o cursor. Até aí tudo bem, funciona!!

O problema é que a barra de título da janela eu não consegui acessar para alterar o cursor e quando o usuário passa o mouse sobre a mesma, o cursor volta ao normal. Alguém sabe como acessar a barra de título e setar o cursor???

4 Respostas

cariocathi

NUNCA TESTEI, POR ISSO NAO SEI C FUNCIONA

talvez e u tenha viajado, mas me surgiu esta idéia enquanto eu lia o post.
adicione um mouse listener ao panel ou frame ou qquer coisa q vc queira mudar o cursor e no evento mouseEntered, vc muda o cursor.
um chute q pode dar certo. :silly:

A

cariocathi

Implementei o código conforme você sugeriu, mas daí eu tenho um problema, pois só funciona com o container a que eu associei o listener. Para funcionar desta maneira, eu teria que fazer o código ou chamar o código no listener do mouse de cada objeto container. O problema é que um botão também é um container e daí começam as confusões. O que eu implementei foi um método conforme abaixo:

private void alteraCursor(Container cnt, Cursor csr) {
        Component cntCount[] = cnt.getComponents();
        
        for (int i=0; i<cntCount.length; i++){
            if (cntCount[i] instanceof java.awt.Container)
                alteraCursor((Container)cntCount[i], csr);
            
            cntCount[i].setCursor(csr);
        }
}

Com isso, antes do processamento eu chamo o método:

alteraCursor(getContentPane(), new Cursor(Cursor.WAIT_CURSOR));

e depois do processamento eu chamo novamente

alteraCursor(getContentPane(), new Cursor(Cursor.DEFAULT_CURSOR));

Só que eu tenho o maldito problema da barra de título, que não é um objeto do frame !!!

cariocathi

vc pode adicionar o mesmo MouseListener para todos os outros containers, fica meio ruim, mas por agora pensei só nisso, c eu tiver outra idéia eu t envio.

A

ok, muito obrigado

Criado 31 de outubro de 2003
Ultima resposta 31 de out. de 2003
Respostas 4
Participantes 2