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

swing – 右键单击??Button / Scala

发布时间:2020-12-16 08:52:58 所属栏目:安全 来源:网络整理
导读:我目前正在尝试使用 scala对扫雷进行编码,但我无法找到右键单击按钮的方法. 我已经在互联网上搜索了它的方法,但我当然无法找到它. 如果有人能帮助我,我会非常感激:) 谢谢, Schnipp (注意:Scala对我来说是一种新语言,我不是Java用户,所以如果我的问题听起来
我目前正在尝试使用 scala对扫雷进行编码,但我无法找到右键单击按钮的方法.

我已经在互联网上搜索了它的方法,但我当然无法找到它.

如果有人能帮助我,我会非常感激:)

谢谢,

Schnipp

(注意:Scala对我来说是一种新语言,我不是Java用户,所以如果我的问题听起来很笨,我很抱歉)

编辑:

我试图找到(或实现)一个功能’ButtonClickedRight’,可以听到右键单击按钮.

像这样

import scala.swing._
import scala._
import scala.swing.event._

object Right extends MainFrame with App {
    title = ""
    visible = true

    val b = new button("")
    listenTo(b)
    reactions += {
       case ButtonClicked(`b`) => *code*
       case ButtonClickedRight(`b`) => *code*
    }
}

编辑2 –

我想知道用户是否点击了按钮“1”.我遇到的问题是,当我点击标签而不是按钮时,此代码会打印“鼠标点击”e.point“type”e.modifiers.

object App extends SimpleSwingApplication {
  lazy val ui = new GridPanel(2,1) {
    contents += new Button("1")
    contents += new Label("2")
    listenTo(mouse.clicks)
    reactions += {
      case e: MouseClicked =>
        println("Mouse clicked at " + e.point+" type "+e.modifiers)
    }
  }
  def top = new MainFrame {
    contents = ui
    visible = true
    preferredSize = new Dimension(500,500)
  }
}

解决方法

按钮事件通过特定发布者.mouse.clicks触发.

import scala.swing._
import scala.swing.event._

object App extends SimpleSwingApplication {
  lazy val ui = new GridPanel(2,1) {
    val button = new Button("1")
    contents += button
    contents += new Label("2")
    listenTo(button.mouse.clicks) // !
    reactions += {
      case evt @ MouseClicked(`button`,pt,_,_) =>
        val which = evt.peer.getButton
        if (which > 1) {
          println(s"Mouse clicked at (${pt.x}; ${pt.y}) - button: $which")
        }
    }
  }
  lazy val top = new MainFrame {
    contents = ui
    size = new Dimension(500,500)
  }
}

请注意,至少在Linux上我的右键有3号而不是2.你也可以使用triggersPopup标志,但是你必须确保监视MousePressed和MouseReleased,因为这个标志是平台相关的.

(编辑:李大同)

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

    推荐文章
      热点阅读