2010-05-24 47 views

回答

2
MouseWheelEvent mwe = new MouseWheelEvent(...); 
component.dispatchEvent(mwe); 
2

好了,我不知道从对象产生滚动Event,但你应该看看的Robot类。它可以让你实际上导致鼠标滚轮滚动。这可能会有所帮助。

具体来说,看看mouseWheel(int)的方法。

1

您是否想要实际触发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火了。

如果是后者,可以使用Component的addMouseWheelListener()方法实现MouseWheelListener并将其添加到组件。

+0

我想火的MouseWheelEvent :) – piotrek 2010-05-24 21:41:37

+1

我碰到与创建鼠标事件,并让他们妥善处理一些奇怪的问题。如果您确切知道将事件传递给该组件,则此方法将正常工作。否则,我会建议使用上面提到的“Robot”。 (如果你真的只是将一个'MouseWheelEvent'移交给你的组件之一,那么听起来好像有一点重构可能是为了将鼠标滚轮逻辑从该方法中拉出来,以便你可以调用'handleMouseWheel(int ticks )'而不必为了传递信息而构建一个'Event'。 – Mike 2010-05-25 01:09:03