我需要向Swing中的组件发送一些事件,因此它就像任何用户生成的标准Swing事件一样处理.
基本上,类似于宏录制器,然后是JEditorPane的执行器.但我需要更多地控制生成的事件.
所以,假设我有一个编辑器,我想:
显而易见的事情是获取EventQueue
并发布事件.这只会将事件添加到队列中,该队列将在EDT上轮流调度.
java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
Run Code Online (Sandbox Code Playgroud)
昨天有人声称Opera和Safari做了他们自己的事情,没有给不受信任的代码所需的权限.
直接的方法是打电话Component.dispatchEvent
.
如果您正在寻找标准 GUI 事件,那么您需要java.awt.Robot
如果您想要定义自己的事件,则必须对需要接收这些事件的 GUI 类进行子类化(或者更好的是,为它们创建一个外部控制器)、定义事件类并分派事件。您可以使用java.beans.EventHandler来调度,创建您自己的处理程序类(我发现有时更有用),或者将您的事件(取决于它们继承的方式)注入到系统事件队列中(找不到类来做到这一点......我以为这是工具包)。
然而,这些我都不会做。您所描述的(宏记录器)应该使用控制器来实现,该控制器生成/提供一系列特定于应用程序的操作消息(查看命令模式)。
归档时间: |
|
查看次数: |
16880 次 |
最近记录: |