Events 扩展面板中的Scala摆动反应
好的,简单的问题是:我有一个扩展了Events 扩展面板中的Scala摆动反应,events,swing,scala,Events,Swing,Scala,好的,简单的问题是:我有一个扩展了scala.swing.Panel的单例对象,我想让它在一次简单的鼠标点击后做出反应。但是嗯,它不起作用。由于Scala是这样一种新的语言,查找特定问题的信息并不容易。也许你能帮上忙: import scala.swing._ import scala.swing.event._ import java.awt.{Graphics2D, Color} object GamePanel extends Panel { val map: TileMap = n
scala.swing.Panel
的单例对象,我想让它在一次简单的鼠标点击后做出反应。但是嗯,它不起作用。由于Scala是这样一种新的语言,查找特定问题的信息并不容易。也许你能帮上忙:
import scala.swing._
import scala.swing.event._
import java.awt.{Graphics2D, Color}
object GamePanel extends Panel {
val map: TileMap = new TileMap(10, 10)({
(x, y) =>
if (x == y) new Wood
else if (x == 5) new Water
else new Grass
})
reactions += {
case MouseClicked(src, pt, mod, clicks, pops) => {
selectedTile = (pt.x / map.tw, pt.y / map.th)
println("Clicked")
repaint
}
}
var selectedTile = (0, 0)
override def paint(g: Graphics2D) = {
map.draw(g)
g.setColor(Color.red)
g.drawRect(selectedTile._1 - 1, selectedTile._2 - 1, 33, 33)
}
}
感谢收听。出于性能原因,Scala Swing默认不处理鼠标事件。 在您的情况下,您需要添加一个
listenTo(mouse.clicks)
你的对象
还有一个事件发布者鼠标移动
如果你需要跟踪鼠标移动事件,你可以收听