2
假設有作爲我如何消耗斯卡拉反應
this.reactions += {
case KeyReleased(src, key, mod, _) => {
// do some stuff
// but how to consume this KeyEvent??
}
}
doint後「一些東西」我想佔用該KeyEvent一個「反應」塊這樣的關鍵事件,但我不知道怎麼辦。展望上Component.scala來源我已經找到了如何在構造的keyReleased事件:
object keys extends Publisher {
peer.addKeyListener(new KeyListener {
def keyPressed(e: java.awt.event.KeyEvent) { publish(new KeyPressed(e)) }
def keyReleased(e: java.awt.event.KeyEvent) { publish(new KeyReleased(e)) }
def keyTyped(e: java.awt.event.KeyEvent) { publish(new KeyTyped(e)) }
})
}
的java.awt.event.KeyEvent中被用作構造函數的參數,但調用keyReleased 案例類有這個簽名
case class KeyReleased(val source: Component, key: Key.Value, val modifiers: Key.Modifiers,
location: Key.Location.Value)
(val peer: java.awt.event.KeyEvent) extends KeyEvent {
def this(e: java.awt.event.KeyEvent) =
this(UIElement.cachedWrapper[Component](e.getSource.asInstanceOf[JComponent]),
Key(e.getKeyCode), e.getModifiersEx, Key.Location(e.getKeyLocation))(e)
}
因此我無法訪問KeyEvent參數。
這正是我需要的!你的回答非常有用,謝謝! – user1569711 2012-08-02 13:42:16