4
我有一个简单的应用程序面板,我想暂停并重新开始绘画,当我点击它。递归值需要类型 - Scala Swing
object ModulusPatterns extends SimpleSwingApplication {
var delay_ms = 200
def top = new MainFrame {
contents = panel
}
val panel = new Panel {
override def paintComponent(g: Graphics2D) { /* draw stuff */ }
listenTo(mouse.clicks)
reactions += {
case e: MouseClicked => {
val r: Boolean = repainter.isRunning
if (r) repainter.stop() else repainter.start()
}
}
}
val repainter = new Timer(delay_ms, new ActionListener {
def actionPerformed(e: ActionEvent) {
panel.repaint
}
})
repainter.start()
}
我上val r
定义行编译错误:
error: recursive value repainter needs type
val r: Boolean = repainter.isRunning
至于我可以告诉我什么都没做递归这里。这是一个错误吗?任何解决方法?
看来我只需要指定'panel'或'repainter'之一的类型。编译器告诉我问题出现在'val r = ...'行中,让我困惑了一下。我很惊讶它不能在这里推断类型。 –