Swing Scala MouseeEvent-如何知道按下了哪个按钮?
我正在使用scala swing编写scala应用程序。我可以监听Swing Scala MouseeEvent-如何知道按下了哪个按钮?,swing,scala,scala-2.8,Swing,Scala,Scala 2.8,我正在使用scala swing编写scala应用程序。我可以监听MouseClicked以在单击鼠标时获得通知,但我如何知道按下了哪个按钮。文档非常糟糕,所以我在Java文档中查找了MouseEvent,它说可以从modifiers字段检索键,所以我尝试输出scalaMouseClicked事件的modifiers字段,结果是一个整数,0表示左键单击,鼠标按钮3、鼠标按钮4和256用于右键单击 如果我只需要知道左键和右键单击之间的区别,它看起来会起作用,但是我能确定所有的修改器都是这样工作的吗
MouseClicked
以在单击鼠标时获得通知,但我如何知道按下了哪个按钮。文档非常糟糕,所以我在Java文档中查找了MouseEvent
,它说可以从modifiers字段检索键,所以我尝试输出scalaMouseClicked
事件的modifiers字段,结果是一个整数,0表示左键单击,鼠标按钮3、鼠标按钮4和256用于右键单击
如果我只需要知道左键和右键单击之间的区别,它看起来会起作用,但是我能确定所有的修改器都是这样工作的吗?文档中什么也没说,据我所知,修改器可能会受到其他因素的影响,而不仅仅是按下了哪个鼠标按钮。我还想知道鼠标左键和鼠标按钮3和4之间的区别。我不认为用户期望他们做与左键单击相同的事情
scala文档中有一个
MouseButtonEvent
,它可以用于任何用途吗?文档中没有说明它的功能。您可以始终使用x.peer.getButton
获取Java映射(其中x
是您的Scala鼠标点击事件)peer
几乎总是包含一个相当于Scala类的Java——在本例中就是这样。Eclipse和Scala插件不会编译,当我的代码中有这样的内容时:e.peer.BUTTON1根据我所读的内容,我应该能够访问Scala代码中的静态字段。我是做错了什么,还是应该使用另一个IDE?您必须通过类而不是实例来访问它们:if(e.peer.getButton==java.awt.event.MouseEvent.BUTTON1)
,例如。谢谢。。。我完全忘记了这一点。