Я недавно боролся с этой самой проблемой. Когда пользователь открывает объект ApplicationMessage
, ApplicationMessageFolderListener.actionPerformed()
не уведомляется. Он уведомляется, если пользователь помечает сообщение как открытое, фактически не открывая его. После некоторого копания это по замыслу.
Чтобы получать уведомления о фактическом открытии сообщения, вам необходимо реализовать класс, который расширяет класс ApplicationMenuItem
и переопределяет его метод run()
. Параметр context
будет установлен на объект ApplicationMessage
, который открывается. Затем вы можете зарегистрировать этот пункт меню, используя метод ApplicationMessageFolderRegistry.registerMessageMenuItems()
для определенных комбинаций состояний сообщений, к которым применяется данный пункт меню, например ApplicationMessage.Status.UNOPENED
.