我只是想从我自己的弹出菜单中调用swing动作。但是由于有一个安全管理器,我需要一个解决方案来调用此操作而不直接调用它。例如,文本组件的粘贴操作将失败,因为如果调用堆栈中有任何类,则无法加载sun.swing.SwingUtilities.2。
有没有办法将事件排入事件线程? JComponent.dispatchEvent不执行任务,因为它自己处理事件。
答案 0 :(得分:0)
简短的回答:你不能不签署小程序。
答案很长:如果没有权限,你可以排队所有有趣的消息。您的示例,粘贴或长形式:可以访问客户端之前复制的内容,是客户端需要了解和授权的操作。想想一个监控剪贴板的胭脂小程序,“粘贴”所有内容并通过网络将其发送到远程服务器。例如,您的PIN码。
解决方案是签署你的小程序,从而告诉客户“这个小程序不是邪恶的(这里是你的名字)责任。”并询问用户他/她是否相信你。如果是,安全管理员将不再阻止您。如果不是 - 那么,用户不信任你,为什么JVM会这样做呢?
请参阅http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html