我正在编写一个小型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)
}
}
}
我尝试了多种变体:鼠标与鼠标,SimpleSwingApplication,从java.awt.event导入MouseEvent等。错误信息足够清晰 - MainFrame中没有值鼠标 - 所以,它在哪里呢?救命啊!
答案 0 :(得分:6)
也许那样?
object App extends SimpleSwingApplication {
lazy val ui = new Panel {
listenTo(mouse.clicks)
reactions += {
case e: MouseClicked =>
println("Mouse clicked at " + e.point)
}
}
def top = new MainFrame {
contents = ui
}
}
BTW,SimpleGUIApplication
已被弃用
答案 1 :(得分:1)
MouseClicked事件的属性为clicks
,如果是双击,则应为2
。如果你很好奇,请查看java.awt.event.MouseEvent原始来源。