GUI 设计中,事件处理是非常重要的一块,用来与用户人机交互、处理业务逻辑等。
以下是scala 事件编程入门实例,仅供参考。
import scala.swing.MainFrame
import scala.swing.Button
import scala.swing.Label
import scala.swing.Orientation
import scala.swing.BoxPanel
import scala.swing._
import scala.swing.event.ButtonClicked
object GUI_Panel_Layout extends SimpleSwingApplication{
def top = new MainFrame{
title = "Second GUI"
val button = new Button{
text = "Scala"
}
val label = new Label {
text = "Here is Spark!!"
}
contents = new GridPanel(2,1){
contents += button
contents += label
border = Swing.EmptyBorder(50,50,50,50)
}
listenTo(button)
var clicks = 0
reactions += {
case ButtonClicked(button) => {
clicks +=1
label.text = "Clicked " + clicks + " times"
}
}
}
}
scala 事件处理步骤如下:
第一步: 注册监听的对象。
如
//监听 button对象
listenTo(button)
第二部:对监听到的事件进行处理
如:
case ButtonClicked(button) => {
clicks +=1
label.text = "Clicked " + clicks + " times"
}
其过程大致如下:
MainFrame 对象监听 button 对象,当对button进行操作,如单击、双击等事件处理时,事件传播到MainFrame 对象时,MainFrame 对象轮询其 reactions 集合,进行相应处理。
参考文档
百度网盘:http://pan.baidu.com/share/home?uk=4013289088#category/type=0
微信号:18610086859
DT大数据微信公众账号:DT_Spark
DT大数据梦工厂交流群:462923555/418110145/437123764