加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

ListView上的Scala Swing弹出菜单

发布时间:2020-12-16 19:24:25 所属栏目:安全 来源:网络整理
导读:将鼠标滑块添加到 Scala Swing ListView的最佳方法是,单击列表中的项目是否会创建一个PopupMenu,其中包含与单击该特定项目相关的选项? 我现在坚持使用Java样式代码执行此操作,或者自2.8.1以来Scala Swing已经进化了一些 我目前得到的一点,也许我正在听错了,
将鼠标滑块添加到 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

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

至于PopupMenu,我不知道 – 它看起来不像是在2.9.1中有一个scala-swing包装器,但我在GitHub here上找到了一个.或者你可以使用正常的Swing版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读