第73讲:Scala界面和事件处理编程进阶实战

今天学习了王家林老师讲解的scala编程的第73讲,主要是文件选择器的使用。让我们通过代码来亲身体验一下。

import scala.swing._
import java.io.File
import scala.swing.event.ButtonClicked
import scala.swing.Label

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 files selected yet."
  } 
 
  val mainPanel = new FlowPanel{//定义主框架
    contents += button
    contents += label
  }
 
  def top = new MainFrame{
    title = "Scala GUI Programming advanced!"
    contents = mainPanel
   
    listenTo(button)//对button进行侦听
    reactions += {
      case ButtonClicked(b)=>{
        val result = fileChooser.showOpenDialog(mainPanel)//文件选择器
        if(result==FileChooser.Result.Approve){
          label.text=fileChooser.selectedFile.getPath()
        }
      }
    }
   
   
   
  }

OK,关于主框架、按钮和label就不讲了,前文提到过。那么让我们主要来看一下文件选择器。

val fileChooser = new FileChooser(new File("."))

这里就定义了一个文件选择器,它和button一样,是一个组件。

当我们通过侦听button,通过点击触发条件时,文件选择器便会跳出。

case ButtonClicked(b)=>{
        val result = fileChooser.showOpenDialog(mainPanel)

我们通过文件选择器来选择文件,并在选择完成后,改变label的文字显示为选择的文件的路径。

if(result==FileChooser.Result.Approve){
          label.text=fileChooser.selectedFile.getPath()

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

关注微信账号,获取更多关于王家林老师的课程内容

王老师QQ:1740415547
微信号:18610086859

时间: 2024-11-05 20:47:11

第73讲:Scala界面和事件处理编程进阶实战的相关文章

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

Scala界面事件处理编程实战详解.

今天学习了一个Scala界面事件处理编程,让我们从代码出发. import scala.swing._import scala.swing.event._ object GUI_Panel extends SimpleSwingApplication{  def top = new MainFrame{//重写框架    title = "second GUI"//界面名称    val button = new Button{//定义按钮      text = "scal

第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界面Scala界面Panel、Layout实战

学习了Scala界面Scala界面Panel.Layout实战详解,Panel是一个容器,有很多子类,复写了方法top,定义了button和label,在BoxPanel中加入button和label例子如下 Import  scala.swing._ Object  GUI_Panel_Layout extends simpleswingApplication{ def top =new MaiFram{ Title=”Second GUI” Val button=new Button{ Te

Scala 中的函数式编程基础(二)

主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. 2. Higher Order Functions 把其他函数作为参数或者作为返回值,就是 higher order functions,python 里面也可以看到这样使用的情形.在酷壳上的博客有一个例子就是将函数作为返回值. 2.1 匿名函数 在 python 里边叫 lambda 函数,常常与 map(

Scala函数式编程进阶

1 package com.dtspark.scala.basics 2 3 /** 4 * 函数式编程进阶: 5 * 1,函数和变量一样作为Scala语言的一等公民,函数可以直接赋值给变量: 6 * 2, 函数更长用的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可,不需要名称,但是如果你要使用的话,一般会把这个匿名函数赋值给一个变量(其实是val常量),Spark源码中大量存在这种语法,必须掌握: 7 * 3, 函数可以作为参数直接传递给函数,这极大的简化的编程的语法,为什么这

王家林亲传《DT大数据梦工厂》第一讲Scala开发环境搭建和Hellworld解析

土豆视频:http://www.tudou.com/programs/view/99sazBunsHg/ 你想了解大数据,你想成为年薪百万吗?那你还等着什么,快点来吧!跟着王家林老师学习spark大数据 这一讲,王老师主讲了Scala环境的搭建 1.安装Java(建议安装java8),安装好后,设置环境变量(java_home.path.classpath这个环境变量) 2.安装Scala,下载地址:spark.apache.org(建议安装2.10.x以上版本),设置环境变量(scala_ho

大数据Spark蘑菇云前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏(学习笔记)

本課課程: Spark源码中的Scala的 implicit 的使用 Scala的 implicit 编程操作实战 Scala的 implicit 企业级最佳实践 Spark源码中的Scala的 implicit 的使用 這個東西意義非常重大,RDD 本身沒有所謂的 Key, Value,只不過是自己本身解讀的時候把它變成 Key Value 的方法去解讀,RDD 本身就是一個 Record. RDD 本身沒有 reduceByKey,它是用了隐式转换,转换了PairRDDPartition 類

蘑菇云行动前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏

package com.dtspark.scala.basics /** * Implicits隐式转换实战 */ class Man(val name:String) /*object Man{ implicit def man2SuperMan(man:Man)=new SuperMan(man.name) }*/ object implicits{ implicit def man2SuperMan(man:Man)=new SuperMan(man.name) } class Super