gpt4 book ai didi

Scala Swing 组件

转载 作者:行者123 更新时间:2023-12-04 06:42:56 28 4
gpt4 key购买 nike

我有一个 ComboBox 的集合声明如下。

val cmbAll = for (i <- 0 to 4) yield new ComboBox(List("---", "Single", "Double"))

我试着通过听其中一首
listenTo(cmbAll(0).selection)

但是,我实际上无法执行 react 。
reactions += {
case SelectionChanged(`cmbAll(0)`) => /** action here **/
}

所有这些都放在一个 TabbedPane 中。我想这不是问题。那么我如何才能收听集合中的各个组件呢?

已编辑

这是我在 Eclipse 中尝试的更完整的代码。
import scala.swing._
import scala.swing.event._

object CMBTest extends SimpleSwingApplication {
lazy val ui = new TabbedPane {
import TabbedPane._

val cmbCategory = for (i <- 0 to 4) yield new ComboBox(List("---", "Single", "Double"))

val cmbTab = new GridBagPanel {
import GridBagPanel._

val c = new Constraints
c.insets = new Insets(5, 5, 5, 5)

for (i <- 0 to 4) {
c.gridx = 0
c.gridy = i
layout(cmbCategory(i)) = c
}
}

pages += new Page("CMBTest", cmbTab)

listenTo(cmbCategory(0))
reactions += {
case SelectionChanged(`cmbCategory(0)`) => {
println("This is cmbCategory(0) calling")
}
}
}

def top = new MainFrame {
title = "ComboBox Array Test"
contents = ui
}
}

我遇到的错误消息在 react 部分,它指出“未找到:值 cmbCategory(0)”。

最佳答案

我不认为在模式匹配中的 ` 中除了稳定标识符之外不允许任何其他内容。在您的情况下,您隐式调用 apply方法做(0) .

你可以试试这个:

val category = cmbCategory(0)
case SelectionChanged(`category`) => {
println("This is cmbCategory(0) calling")

关于Scala Swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4029570/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com