【问题标题】:Generate event, Swing生成事件,Swing
【发布时间】:2010-05-24 21:16:47
【问题描述】:

如何为某些Object 生成事件MouseWheelEvent

【问题讨论】:

    标签: java swing events event-handling


    【解决方案1】:

    你可以使用Robot类。看看Mouse Wheel method

    【讨论】:

      【解决方案2】:
      MouseWheelEvent mwe = new MouseWheelEvent(...);
      component.dispatchEvent( mwe );
      

      【讨论】:

        【解决方案3】:

        好吧,我不知道如何从对象生成滚动Event,但您应该看看Robot 类。它允许您实际使鼠标滚轮滚动。这可能会有所帮助。

        具体看mouseWheel(int)方法。

        【讨论】:

          【解决方案4】:

          您想实际触发 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() 方法将其添加到您的组件中。

          【讨论】:

          • 我想触发 MouseWheelEvent :)
          • 我在创建鼠标事件并正确处理它们时遇到了一些奇怪的问题。如果您确切知道要将事件传递给的组件,则此方法将正常工作。否则,我建议使用上面提到的Robot。 (如果您真的只是将MouseWheelEvent 传递给您的一个组件,听起来可能需要进行一些重构。将鼠标滚轮逻辑从该方法中拉出,以便您可以从其他地方调用handleMouseWheel(int ticks)无需构造Event 来传递信息。
          猜你喜欢
          • 2012-03-21
          • 2011-01-13
          • 1970-01-01
          • 1970-01-01
          • 2018-09-07
          • 1970-01-01
          • 1970-01-01
          • 2011-10-19
          • 1970-01-01
          相关资源
          最近更新 更多