gpt4 book ai didi

swing - 响应Scala中的关键事件

转载 作者:行者123 更新时间:2023-12-04 14:06:47 25 4
gpt4 key购买 nike

我正在尝试一些 Scala gui 编程(我在 Scala 中的第一个项目,所以我想我会从一些简单的东西开始)。但我似乎陷入了一些看起来应该相对微不足道的事情。我有一个扩展 scala.swing.MainFrame 的类,我想检测当该窗口具有焦点时用户何时按下某个键。有趣的是我似乎无法找到任何方法来触发该事件。

我在这里找到了其他人如何解决问题的示例:http://houseofmirrors.googlecode.com/svn/trunk/src/src/main/scala/HouseGui.scala但他们似乎已经恢复使用 Java Swing API,这有点令人失望。有谁知道是否有更惯用的拦截事件的方式?

最佳答案

这似乎适用于 Scala 2.9

package fi.harjum.swing

import scala.swing._
import scala.swing.event._
import java.awt.event._

object KeyEventTest extends SimpleSwingApplication {
def top = new MainFrame {
val label = new Label {
text = "No click yet"
}
contents = new BoxPanel(Orientation.Vertical) {
contents += label
border = Swing.EmptyBorder(30,30,10,10)
listenTo(keys)
reactions += {
case KeyPressed(_, Key.Space, _, _) =>
label.text = "Space is down"
case KeyReleased(_, Key.Space, _, _) =>
label.text = "Space is up"
}
focusable = true
requestFocus
}
}
}

关于swing - 响应Scala中的关键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com