Clique com mouse em movimento.  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
kirill
Thread.start()
[Avatar]

Membro desde: 27/06/2008 08:56:17
Mensagens: 43
Offline

Eai galera mais uma vez estou com uma duvida,
desta vez não sei se ela é tão trivial e nem sei se existe solucão.
Não sei se vocês já perceberam isto mas eu percebi isto fazendo um trabalho de
computacão gráfica onde o professor pediu para que eu implementasse
um aplicativo do tipo paint mas bem simplificado.
Então, o problema é o seguinte, eu tenho um JFrame,
dentro dele tenho um JPanel, neste JPanel eu devo desenhar um poligono com um
numero de pontos definido pelo usuario, eu usei a classe GeneralPath.
E funcionou tudo certo e tal. Só que eu percebi que se o mouse estiver em movimento e voce clicar
no JPanel com o BUTTON1 para que seja selecionado um ponto do polígono, este ponto não é detectado.
Ou seja, o que eu quero dizer é será que a linguagem possui esta limitação ?!
A unica maneira que eu consigo detectar o click do mouse, é com ele parado.
Vou passar um exemplo simples para que voces vejam.
Eh bem simples, quando vc clica no JPanel, deve aparecer a coordenada do clique atraves do System.out.
Aí está a classe.



Valeeeeu galera, pela atenção, se alguem tiver uma ideia de como resolver este problema estarei muito grato.
P.S. usando c++ com openGL e FLTK, este problema não acontece. E como todos sabem se por ex. usando Windows ou Linux
voce fizer isso na area de trabalho, vc consegue detectar este clicks com o mouse em movimento. Ambos sistemas escritos em C++.

Sempre há uma maneira inteligente e eficaz de se resolver um problema.
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

Use o método mouseDown e não o mouseClick.

Só é considerado click se o usuário pressionar e soltar o mouse praticamente no mesmo lugar. Com o mouse up, ele usará como click o lugar onde o mouse parou. Com o mouseDown, onde o mouse desceu.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
viniciusfaleiro
Virtual Machine Man
[Avatar]

Membro desde: 22/03/2008 20:07:50
Mensagens: 524
Offline

ViniGodoy wrote:Use o método mouseDown e não o mouseClick.

Só é considerado click se o usuário pressionar e soltar o mouse praticamente no mesmo lugar. Com o mouse up, ele usará como click o lugar onde o mouse parou. Com o mouseDown, onde o mouse desceu.


Ja tive esse problema.. resolvi com mouseReleased

Linkedin: http://www.linkedin.com/pub/vinicius-faleiro/32/697/624
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

Ops, é mousePressed e released mesmo. heehehhehe

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
kirill
Thread.start()
[Avatar]

Membro desde: 27/06/2008 08:56:17
Mensagens: 43
Offline

Vaaaleu irmaos,
funcionou perfeitamente como eu queria.
Eh so capturar os pontos usando mousePressed mesmo.
Gracias.

Sempre há uma maneira inteligente e eficaz de se resolver um problema.
[MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team