Scala界面事件处理

示例代码:

import scala.swing.SimpleSwingApplication
import scala.swing.MainFrame
import scala.swing.Button
import scala.swing.Label
import scala.swing.Orientation
import scala.swing.BoxPanel
import scala.swing.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 BoxPanel(Orientation.Vertical){
      contents += button
      contents += label
      border = Swing.EmptyBorder(50,50,50,50)
    }

    listenTo(button) //监听该button
    var clicks = 0
    reactions += {
      case ButtonClicked(button) => {
        clicks += 1
        label.text = "Clicked " + clicks + "times"
      }
    }
  }

运行效果(监听button点击次数):

==========================================================

示例代码二:

import scala.swing.SimpleSwingApplication
import scala.swing.FileChooser
import java.io.File
import scala.swing.MainFrame
import scala.swing.FlowPanel
import scala.swing.Button
import scala.swing.Label
import scala.swing.event.ButtonClicked

object GUI_Event extends SimpleSwingApplication {

  val fileChooser = new FileChooser(new File(".")) //文件对话框
  fileChooser.title = "File Chooser"
  val button = new Button{
    text = "Choose a File from local"
  }
  val label = new Label {
    text = "No any file selected yet."
  }
  val mainPanel = new FlowPanel{
    contents += button
    contents += label
  }

  def top = new MainFrame{
    title = "Scala GUI Programing advanced By LEAF !!!"
    contents = mainPanel

    listenTo(button)

    reactions += {
      case ButtonClicked(b) => {
        val result = fileChooser.showOpenDialog(mainPanel)
        if(result == FileChooser.Result.Approve){
          label.text = fileChooser.selectedFile.getPath()
        }
      }
    }
  }

}

运行效果:

当点击choose a file from local时,我们可以得到当前文件系统,如图:

当我们选择某一个文件时,label中监听该文件的绝对路径(比如我们选择.class文件):

相关来源:DT大数据梦工厂,微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。

相关资料:

scala深入浅出实战经典完整视频、PPT、代码下载:

百度云盘:http://pan.baidu.com/s/1c0noOt6

腾讯微云:http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy  访问密码45e2

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 07-28

Scala界面事件处理的相关文章

第71讲:Scala界面Panel、Layout实战详解

今天学习了王家林老师scala讲座的第71讲,scala界面编程panel实战.让我们一起来看一下. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号,获取更多关于王家林老师的课程内容 王老师QQ:1740415547 微信号:18610086859 不多说,先上代码: import scala.swing._ object GUI_Panel extends SimpleSwingApplication{  def top = new MainFrame{//重写框架 

scala界面GUI编程实战初步了解

示例代码: import scala.swing._ //SimpleSwingApplication继承自SwingApplication类(此类中有main方法,因此可以运行显示界面) object Hello_GUI extends SimpleSwingApplication { def top = new MainFrame{ //顶级容器 title = "Hello GUI" contents = new Button{ text = "Scala =>

第70讲:Scala界面GUI编程实战详解

今天又学习了王家林老师的scala学习讲座第70讲,关于scala的界面编程,让我们来初步学习一下scala中界面编程的过程. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号,获取更多关于王家林老师的课程内容 王老师QQ:1740415547 微信号:18610086859 首先,scala中的界面编程是封装和改进了java的界面编程的swing库,当然我们在用scala进行界面编程的时候,要先引入此类库,下面让我们从代码实战出发. import scala.swing

Java 图形界面事件处理机制

Java语言提供了一系列的用户图形界面的组件,主要有两个包:java.awt,和 javax.swing. 其中,awt包是早期包,swing包是后期提供的用户界面包. swing包组件与awt包组件的区别在于:swing包组件 通常不依赖于 当前平台GUI功能. swing组件优势:1.跨平台,2.移植性强,3.swing扩展了awt包,组件更加丰富,使用更加方便. 事件处理机制: Java中使用委托事件模型来处理事件. 委托事件模型分为三个部分:事件源.事件对象.事件监听器. 事件源:指可以

Android教材 | 第三章 Android界面事件处理(二)—— 杰瑞教育原创教材试读

 编者按 JRedu 杰瑞教育原创系列教材将于年后与大家正式见面.为更好的借鉴读者意见,我们将会陆续地在博客园推出一系列教材试读.我们也热忱的欢迎广大博友与我们互动,提出宝贵意见. 本篇博客将推出教材第三章第二部分的试读(传送门:第一部分),请大家继续提出宝贵意见,我们也将为积极互动的博友,免费提供我们的原创教材以及更多福利,也欢迎大家加入最下方QQ群与我们交流,谢谢大家! 3.5 系统设置事件处理 3.5.1onConfigurationChanged响应事件 在App开发过程中,有时候需要获

Scala界面Panel、Layout初探

示例代码: package com.dt.scala.gui import scala.swing.SimpleSwingApplication import scala.swing.MainFrame import scala.swing.Button import scala.swing.Label import scala.swing.Orientation import scala.swing.BoxPanel import scala.swing.Swing object GUI_Pa

DT大数据梦工厂 第72,73讲

王家林亲授<DT大数据梦工厂>大数据实战视频“Scala深入浅出实战经典”视频.音频和PPT下载!第72讲:Scala界面事件处理编程实战详解百度云:http://pan.baidu.com/s/1qWsq6Jy腾讯微云:http://url.cn/g6En3l360云盘:http://yunpan.cn/cchw9EZAp2rKd 访问密码 05d1本节王老师讲了scala界面的事件处理就是当用户操作一个行为,GUI将做出一个反应.比如点击一个按钮事件.def top=new MainFra

Spark 大数据中文分词统计(三) Scala语言实现分词统计

Java版的Spark大数据中文分词统计程序完成之后,又经过一周的努力,把Scala版的Spark 大数据中文分词统计程序也搞出来了,在此分享给各位想学习Spark的朋友. 如下是程序最终运行的界面截图,和Java版差别不大: 如下是Scala工程结构: 当你在工程主类文件WordCounter.scala上单击右键,选择Run As Scala Application: 然后选择唐诗宋词进行分词统计,就会出现前面显示的分词结果. 工程代码已经上传CSDN:http://download.csd

Android之十七 进度条和Hanlder

构建进度条 在XML布局文件中使用ProgressBar标签布局视图 <ProgressBar android:id="@+id/progressbar" android:layout_width="match_parent" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Horizontal" /> 在J