我正在使用 Scala 创建一个 GUI,它应该播放一个依赖于算法但进入 textField 的信号,例如。罪(2*Pi*400*t)。播放功能完美运行,但问题是 GUI 的输入。textField 接受函数并将其转换为字符串,现在我想知道是否有一种简单的方法可以将字符串转换回函数。我正在考虑将输入与各种有效功能相匹配,但是我不想限制可能的功能,因为我希望用户更有创造力
我对 Scala 还是比较陌生,希望你们中的一个人有更好的主意。这是我到目前为止的代码,它是一个专注于功能的基本设置。
object PlayApp extends SimpleGUIApplication {
def top = new MainFrame {
title = "Play Function App"
val label = new Label("Type in function to be played")
object Function extends TextField ( columns = 10)
val label2 = new Label("Type in length of time to play")
object Time extends TextField { columns = 10}
val button = new Button("Play")
contents = new BoxPanel(Orientation.Vertical) {
contents += label
contents += Function
contents += label2
contents += Time
contents += button
border = Swing.EmptyBorder(50, 50, 20, 50)
}
var f = "sin(t)"
var x = 0
listenTo(Function, Time, button)
reactions += {
case EditDone(Function) =>
f = Function.text.toString
case EditDone(Time) =>
x = Time.text.toInt
case ButtonClicked(b) =>
play(t => f.toDouble,0,x)
}
}
}