Estou tentando implementar os métodos do MouseEvent porque preciso saber quando o mouse se meche e quando ele para.
Até agora eu sei quando ele se meche com o public void mouseMoved(MouseEvent e) {} agora preciso saber quando ele para.
O objetivo disso ai é conseguir calcular quanto tempo a pessoa ficou parada com o mouse. Eu já consegui fazer isso com os outros métodos como segue abaixo.
simples…
você pode:
Consultar uma biblioteca das funções do mouse pesquisando sobre o mouse parado…
OU
pode ser registrado o ultimo movimento, assim que ele mover o mouse novamente você verifica o tempo entre um movimento e o ultimo.
se for mandar mensagem de aviso ele teria que mecher o mouse de qualquer maneira…
L
luca.s.lima1
Eu ja pesquisei sobre o mouse parado mas até agora não encontrei nada a respeito.
E
entanglement
Rode a aplicação abaixo. Ele só consegue contar o tempo se o mouse estiver dentro do frame, é lógico. (MouseMoved não consegue pegar os eventos fora do JFrame).
packageguj;importjava.awt.BorderLayout;importjava.awt.EventQueue;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseEvent;importjava.awt.event.MouseMotionAdapter;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.Timer;publicclassExemploMouseParadoextendsJFrame{privateJLabellblTempoParado;privateTimertimer;privatelongstartTime;privateTimergetTimer(){returnnewTimer(100,newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){longcurrentTime=System.currentTimeMillis();lblTempoParado.setText(String.format("Tempo parado: %d ms",currentTime-startTime));}});}/** * Launch the application. */publicstaticvoidmain(String[]args){EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{ExemploMouseParadoframe=newExemploMouseParado();frame.setVisible(true);}catch(Exceptione){e.printStackTrace();}}});}/** * Create the frame. */publicExemploMouseParado(){addMouseMotionListener(newMouseMotionAdapter(){@OverridepublicvoidmouseMoved(MouseEvente){startTime=System.currentTimeMillis();}});setTitle("Exemplo Mouse Parado");setBounds(100,100,450,300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);getContentPane().add(getLblTempoParado(),BorderLayout.NORTH);startTime=System.currentTimeMillis();getTimer().start();}privateJLabelgetLblTempoParado(){if(lblTempoParado==null){lblTempoParado=newJLabel("Tempo parado:");}returnlblTempoParado;}}