gpt4 book ai didi

swing - ListView 上的 Scala Swing 弹出菜单

转载 作者:行者123 更新时间:2023-12-01 05:36:38 25 4
gpt4 key购买 nike

将 mouseListener 添加到 Scala Swing ListView 的最佳方法是,单击列表中的任何项目都会创建一个 PopupMenu,其中包含与单击的特定项目相关的选项?

我现在是坚持用 Java 风格的代码来做这件事,还是自 2.8.1 以来 Scala Swing 有了更多的发展?

我目前得到的一些东西,也许我听错了,我正在查看 ListView 上的 ScalaDocs。

lazy val ui = new FlowPanel {
val listView = ListView(items) {
renderer = Renderer(_.name)
listenTo(this.mouse.clicks)
reactions += {
case e: MouseClicked =>
// How do I determine what item was clicked?
}
}
}

最佳答案

  lazy val ui = new FlowPanel { 
val listView = new ListView( Seq("spam", "eggs", "ham") )
listenTo(listView.selection)
reactions += {
case SelectionChanged(`listView`) => println(listView.selection.items(0))
}
contents += listView
}

这应该产生输出,如
spam
spam
eggs
eggs
ham
ham

当您单击各种项目时。我以前从未这样做过,但我查看了 UIDemo可以在 scala.swing.test 中找到的示例包裹。要阅读源代码,如果您有 IntelliJ,只需单击“项目” Pane 中“外部库”中的 scala-swing.jar 中的相关对象即可。

至于 PopupMenu,我不知道——它看起来不像在 2.9.1 中有一个 scala-swing 包装器,但我在 GitHub 上找到了一个 here .或者您可以只使用普通的 Swing 版本。

关于swing - ListView 上的 Scala Swing 弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290290/

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