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

swing – Scala弹出菜单

发布时间:2020-12-16 09:27:09 所属栏目:安全 来源:网络整理
导读:如何在Scala中显示弹出窗口?我有一个“后门”,但对我来说似乎很难看: val item = new MenuItem(new Action("Say Hello") { def apply = println("Hello World");})//SO FAR SO GOOD,NOW FOR THE UGLY BIT!val popup = new javax.swing.JPopupMenupopup.add
如何在Scala中显示弹出窗口?我有一个“后门”,但对我来说似乎很难看:

val item = new MenuItem(new Action("Say Hello") {
  def apply = println("Hello World");
})
//SO FAR SO GOOD,NOW FOR THE UGLY BIT!
val popup = new javax.swing.JPopupMenu
popup.add(item.peer)
popup.setVisible(true)

解决方法

你正在做的事情很好,但如果你想隐藏同伴电话,你可以创建自己的班级:

class PopupMenu extends Component
{
  override lazy val peer : JPopupMenu = new JPopupMenu

  def add(item:MenuItem) : Unit = { peer.add(item.peer) }
  def setVisible(visible:Boolean) : Unit = { peer.setVisible(visible) }
  /* Create any other peer methods here */
}

然后你可以像这样使用它:

val item = new MenuItem(new Action("Say Hello") {
  def apply = println("Hello World");
})

val popup = new PopupMenu
popup.add(item)
popup.setVisible(true)

作为替代方案,您可以尝试SQUIB(Scala的Quirky User Interface Builder).使用SQUIB,上面的代码变为:

popup(
  contents(
    menuitem(
      'text -> "Say Hello",actionPerformed(
        println("Hello World!")
      )
    )
  )
).setVisible(true)

(编辑:李大同)

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

    推荐文章
      热点阅读