【发布时间】:2010-05-24 21:16:47
【问题描述】:
如何为某些Object 生成事件MouseWheelEvent?
【问题讨论】:
标签: java swing events event-handling
如何为某些Object 生成事件MouseWheelEvent?
【问题讨论】:
标签: java swing events event-handling
你可以使用Robot类。看看Mouse Wheel method
【讨论】:
MouseWheelEvent mwe = new MouseWheelEvent(...);
component.dispatchEvent( mwe );
【讨论】:
好吧,我不知道如何从对象生成滚动Event,但您应该看看Robot 类。它允许您实际使鼠标滚轮滚动。这可能会有所帮助。
具体看mouseWheel(int)方法。
【讨论】:
您想实际触发 MouseWheelEvent,还是想在鼠标滚轮滚动时执行某些操作?
如果是前者,你可以使用构造函数创建一个新实例:
new MouseWheelEvent(Component source, int id, long when, int modifiers, int x,
int y, int clickCount, boolean popupTrigger, int scrollType,
int scrollAmount, int wheelRotation)
并将实例传递给组件的 processMouseWheelEvent 方法以触发它。
如果是后者,您可以实现一个 MouseWheelListener 并使用 Component 的 addMouseWheelListener() 方法将其添加到您的组件中。
【讨论】:
Robot。 (如果您真的只是将MouseWheelEvent 传递给您的一个组件,听起来可能需要进行一些重构。将鼠标滚轮逻辑从该方法中拉出,以便您可以从其他地方调用handleMouseWheel(int ticks)无需构造Event 来传递信息。