Em princípio vejo duas formas de detectar a inatividade numa aplicação desktop.
Você pode ter uma Thread em loop comparando as coordenadas do mouse utilizando a classe MouseInfo, se após um certo tempo a coordenada (x,y) do mouse estiver na mesma posição, provavelmente não estão usando o sistema.
Outra alternativa é ter uma Thread em loop tirando printscreen da tela com a classe Robot, aí você compara esse printscreen com o printscreen anterior, se forem iguais, provavelmente não estão usando o sistema.