它可能很容易解决,但由于我是scala的新手,我甚至不知道我不知道的是什么。
我必须编写一个简单的应用程序,在输入“Enter”键后将输入文本重写为输出文本字段。
object Main扩展SimpleSwingApplication {
def top = new MainFrame {
title = "Text Fields"
preferredSize = new Dimension(200, 90)
val inText = new TextField(10)
val outText = new TextField(10)
outText.editable = false
val inLabel = new Label("input")
val outLabel = new Label("output")
inText.listenTo(inText.keys)
inText.reactions += {
case EditDone(e) => println("aaaa") ; outText.text = e.text
}
contents = new FlowPanel(){
contents += inLabel
contents += inText
contents += outLabel
contents += outText
}
}
}
由于某种原因,EditDone事件无法启动。 KeyPressed事件应该结束我知道我可以检查它是否是'输入'键但是因为我的案例有特殊事件我希望我可以使用它。
答案 0 :(得分:2)
好的我明白了 -
listenTo方法参数必须是我们想要监听的组件。
所以inText文本字段必须听...它自己。
def top = new MainFrame {
title = "Text Fields"
preferredSize = new Dimension(200, 90)
val inText = new TextField(10)
val outText = new TextField(10)
outText.editable = false
val inLabel = new Label("input")
val outLabel = new Label("output")
inText.listenTo(inText) //Changed from inText.keys to inText
inText.reactions += {
case EditDone(e) => println("aaaa") ; outText.text = e.text
}
contents = new FlowPanel(){
contents += inLabel
contents += inText
contents += outLabel
contents += outText
}
}