Как я могу обнаружить неактивность в окне (включая его диалоговые окна) и затем использовать javax.swing.Timer, чтобы измерить в течение X количество времени, в течение которого окно было неактивным, а затем распечатать сообщение?
Неактивность приложения может вам помочь.