| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 07:49:39
|
fsfnit
Java Ninja
![[Avatar]](/images/avatar/83a703361336ec7c6f2efcd4f4a44206.jpg)
Membro desde: 16/05/2006 13:38:27
Mensagens: 283
Localização: Far Far Away - Niterói / RJ
Offline
|
Bom pessoal, preciso ter esse evento na minha aplicação.
Alguem já implementou um mousePressed ()?
Enquanto o mouse estiver pressionado faça alguma coisa. Não tem esse método na API do SWT ?
This message was edited 1 time. Last update was at 18/06/2009 08:19:05
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 09:00:06
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
http://www.coderanch.com/t/345698/Swing-AWT-SWT-JFace/java/mousePressed
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 09:33:03
|
fsfnit
Java Ninja
![[Avatar]](/images/avatar/83a703361336ec7c6f2efcd4f4a44206.jpg)
Membro desde: 16/05/2006 13:38:27
Mensagens: 283
Localização: Far Far Away - Niterói / RJ
Offline
|
Obrigado pela ajuda Thingol, mas estou trabalhando com SWT, e lá não tem a solução.
Já havia testado métodos identicos aos que eles postaram lá.
Em um loop testando se o MouseDown()//Evento do SWT qdo o Botão está pressionado ele simplesmente fica preso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 09:35:19
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Você não pode fazer isso que você está pensando.
Em vez de ficar em um loop esperando alguma coisa - ISSO É PROIBIDO EM PROGRAMAÇÃO ORIENTADA A EVENTOS - , você tem de ter um estado ativado pelo evento "mouse pressed", onde você faz alguma coisa, e que deve ser cancelado pelo evento "mouse released".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 09:43:30
|
fsfnit
Java Ninja
![[Avatar]](/images/avatar/83a703361336ec7c6f2efcd4f4a44206.jpg)
Membro desde: 16/05/2006 13:38:27
Mensagens: 283
Localização: Far Far Away - Niterói / RJ
Offline
|
MAS a grande questão é como setar o mousePressed(). Que tipo de ação determina que o mouse está clicado ?
Não consigo capturar isso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 09:49:02
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/MouseListenerExample.htm
Os nomes dos eventos são mouseDown e mouseUp.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 09:59:44
|
fsfnit
Java Ninja
![[Avatar]](/images/avatar/83a703361336ec7c6f2efcd4f4a44206.jpg)
Membro desde: 16/05/2006 13:38:27
Mensagens: 283
Localização: Far Far Away - Niterói / RJ
Offline
|
Ja uso esses métodos.
O que vc diz em setar um estado ?
Se for o que entendi, eu teria que fazer algo "enquanto" tal estado esteja válido. E mesmo fazendo não funciona.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 10:05:36
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Em vez de fazer TUDO no próprio evento mouseDown, faça em outro lugar (talvez uma thread, quem sabe?) e nesse local você investiga o valor de uma flag (variável booleana), que será setada para "true" pelo mouseDown, e para "false" pelo mouseUp.
Por exemplo, digamos que você esteja fazendo um programa que faz um desenho na tela enquanto o mouse estiver pressionado. O tal "outro lugar" que deve fazer alguma coisa é o "mouseMove" de uma classe que implementa MouseMoveListener e que deve criar um desenho na tela só quando a tal variável tiver sido setada para "true" pelo mouseDown.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2009 13:03:47
|
Alien
What is classpath?
Membro desde: 17/06/2009 12:26:54
Mensagens: 9
Offline
|
Desculpe incomodar sou novo no forum, alguem poderia me ajudar, postei um topico sobre maskformatter....
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2009 08:18:31
|
fsfnit
Java Ninja
![[Avatar]](/images/avatar/83a703361336ec7c6f2efcd4f4a44206.jpg)
Membro desde: 16/05/2006 13:38:27
Mensagens: 283
Localização: Far Far Away - Niterói / RJ
Offline
|
Fala Thingol,
Resolvi a parada usando Timer(), e associando ao timer a execução de um outro método.
Ou seja, ao capturar o evento do mouse (MouseDown ou MouseUp) eu respectivamente starto o timer ou stopo o timer.
Dentro do timer eu faço o que deve ser feito e de quanto em quanto tempo.
Eu usei essa funcionalidade para criar o meu Spinner, que suporta qualquer tipo de dados (int,long,double ), e como no Spinner, ao se manter o mouse clicado sobre um dos botões do Spinner, ele vai incrementando ou decrementando a cada X tempo (setei para a cada 1/2 segundo).
Fiquei só meio decepcionado com SWT pois ele ao contrário do SWING tem poucos eventos de mouse.
Bom é isso, espero ter ajudado a comunidade.
|
|
|
 |
|
|