Я просто хочу вызвать действие свинга из своего всплывающего меню. Но поскольку есть менеджер безопасности, мне нужно решение для вызова этого действия, не вызывая его напрямую. Например, действие вставки текстового компонента завершится ошибкой, потому что sun.swing.SwingUtilities2 не может быть загружен, если в стеке вызовов есть какой-либо из моих классов.
Есть ли способ поставить событие в очередь в поток событий? JComponent.dispatchEvent не выполняет эту работу, поскольку обрабатывает само событие.




Короткий ответ: без подписи апплета нельзя.
Длинный ответ: если бы вы могли без разрешений, вы могли бы ставить в очередь всевозможные интересные сообщения. Ваш пример, вставить или в полной форме: иметь доступ к тому, что клиент скопировал ранее, - это действие, о котором клиент должен знать и авторизовать. Представьте себе апплет Rouge, который отслеживает буфер обмена, «вставляет» все и отправляет по сети на удаленный сервер. Например, ваш PIN-код.
Решение состоит в том, чтобы подписать ваш апплет, тем самым сообщив клиенту: «Это (ваше имя здесь) ответственность, что этот апплет не является злом». и спросить пользователя, верит ли он вам. Если да, менеджер безопасности больше не будет вас блокировать. Если нет - ну, пользователь не доверяет вам, почему JVM должна поступать иначе?
См. http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html