Scala-Swing中的MVP
发布时间:2020-12-16 10:04:09 所属栏目:安全 来源:网络整理
导读:有没有人知道一些写得很好的示例项目,展示了如何在 Scala Swing中实现MVP架构? 我在Scala Swing中只找到了关于MVP的这个主题: Improving MVP in Scala Scala model-view-presenter,traits 还有第二个问题:你怎么想,将GUI小部件从视图暴露给不使用公共gett
有没有人知道一些写得很好的示例项目,展示了如何在
Scala Swing中实现MVP架构?
我在Scala Swing中只找到了关于MVP的这个主题: > Improving MVP in Scala 还有第二个问题:你怎么想,将GUI小部件从视图暴露给不使用公共getter的演示者是正确的: def getNextButton(): Reactor // this code in view will be accessed by presenter to setup clickHandler 但在特征中使用抽象字段(如我提供的第二个链接 – Scala model-view-presenter,traits中所述): 解决方法
不幸的是,Scala Swing放弃了相当多的底层Java Swing MVC.举一些例子:ComboBox没有直接访问模型(与JComboBox不同),ListView,Button等也没有.只有Table有模型,但没有Scala’fied,所以没有类型.
因此,如果要使用现有的Java模型,则需要进入Scala Swing小部件的对等字段.如果你想要MVC和你自己的模型,那么你必须手动进行接线. import scala.swing._ import Swing._ val m = new javax.swing.DefaultButtonModel val cb = new CheckBox ("Check" ) { peer.setModel(m) } val tb = new ToggleButton("Toggle") { peer.setModel(m) } val f = new Frame { contents = new FlowPanel(cb,tb) pack().centerOnScreen() open() } m addChangeListener ChangeListener { _ => println(s"Selected? ${m.isSelected}") } m.setSelected(true) This is一个小型库,用于在Scala中创建模型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |