Verificar atividade em num JFrame com thread

4 respostas
laercioferracini

Boa noite…

gostaria de saber se existe em java algo que capture, ou perceba, se está havendo atividade num determinado sistema.

a idéia era usar uma thread com um tempo determinado, se não houvesse atividade no frame,

ele fizesse um logoff no sistema.

Existe algo?

4 Respostas

juno.rr
Pronto acho que não existe. O que vc poderia fazer é utilizar o GlassPane da JFrame para escutar por atividades, talvez com MouseListener. Algo como
class ActivityListener extends MouseAdapter {
  
  public static final int DEFAULT_TIMEOUT = 5 * 1000 * 60;

  private javax.swing.Timer timeout;

  private Component comp;

  public ActivityListener(Component c) {
    this.comp = c;
    timeout = new javax.swing.Timer(DEFAULT_TIMEOUT, new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        //faz logout no sistema
      }
    });
    
    comp.addMouseListener(this);
    timeout.start();
  }

  public void mouseClicked(MouseEvent e) {
    timeout.restart();
  }
}

ActivityListener act = new ActivityListener( frame.getGlassPane() );

Mas não tenho certeza se o GlassPane iria detectar a atividade do mouse, teria que testar...

laercioferracini

Valeu vou testar aqui…

laercioferracini

na ultima linha

ActivityListener act = new ActivityListener( frame.getGlassPane() );

frame seria o Frame atual?

laercioferracini

não funcionou ou não consegui fazer direito.

Criado 22 de março de 2011
Ultima resposta 26 de mar. de 2011
Respostas 4
Participantes 2