我正在使用scala swing编写scala应用程序.MouseClicked只要点击鼠标,我就可以收听通知,但我怎么知道按下了哪个按钮.文档非常糟糕,所以我查看了Java文档MouseEvent,其中说可以从修饰符字段检索密钥,所以我尝试输出scala MouseClicked事件的修饰符字段,结果证明是整数, 0表示左键单击,鼠标键3和鼠标键4表示256,右键单击256.
如果我只需要知道左右点击之间的区别,它看起来会起作用,但是我可以确定修改器的所有方式都是这样的吗?什么都没有说明,而且据我所知,修饰符可能会被其他东西影响,而不仅仅是按下了哪个鼠标键.我也想知道左键单击鼠标按钮3和鼠标键4之间的区别.我不认为用户希望它们与左键单击做同样的事情.
在scala文档中有一个MouseButtonEvent,这可以用于任何事情吗?文档没有说明它的作用.
我正在写一个小的GUI程序.一切正常,除了我想要识别鼠标双击.但是,我根本无法识别鼠标点击(如此),但我可以单击按钮并从列表中选择代码.
以下代码改编自Ingo Maier的"The scala.swing package":
import scala.swing._
import scala.swing.event._
object MouseTest extends SimpleGUIApplication {
def top = new MainFrame {
listenTo(this.mouse) // value mouse is not a member of scala.swing.MainFrame
reactions += {
case e: MouseClicked =>
println("Mouse clicked at " + e.point)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了多种变体:鼠标与鼠标,SimpleSwingApplication,从java.awt.event等导入MouseEvent.错误信息足够清晰 - MainFrame中没有值鼠标 - 所以,它在哪里呢?救命!