1

有一个更好的方法吗?

import java.awt.event.MouseEvent
trait MouseListener  extends java.awt.event.MouseListener{
    def mouseClicked(e:MouseEvent){}
    def mousePressed(e:MouseEvent){}
    def mouseReleased(e:MouseEvent){}
    def mouseEntered(e:MouseEvent){}
    def mouseExited(e:MouseEvent){}
}

我做了这个特性,所以我可以在不覆盖我不使用的方法的情况下做到这一点。这很好用我只是想知道是否有替代方法?

new ActionListener{
    override def mouseClicked(e:MouseEvent){
        //Blah Blah
    }
}
4

2 回答 2

2

这已经是内置的:MouseAdapter。对于其他具有不止一种方法的 Swing 侦听器接口,也有类似的类。

于 2013-09-24T05:59:26.410 回答
1

通过“更好”的方式,我想你的意思是“Scala 方式”。

在 scala.swing.UIElement 上

  listenTo(mouse.clicks, mouse.moves, mouse.wheel, keys)

  reactions += {
    case e: MousePressed => startDrag(e)
    case e: MouseDragged => doDrag(e)
    case e: MouseReleased => endDrag(e)
    case e: MouseWheelMoved => wheeling(e)
    case _ => null // println ("Unreacted event")
  }
于 2013-09-24T06:30:01.623 回答