Scala GUI使用笔记,scala swing库的使用

57、Scala编程:解析器组合器与GUI开发 本博客介绍了 Scala 编程中两个重要主题:解析器组合器和 GUI 开发。解析器组合器部分讲解了如何利用 `lastFailure` 字段记录解析失败信息,以及 `phrase` 方法如何处理解析结果。文章还讨论了回溯与 LL(1) 语法的区别及优化方法,并通过示例代码展示了如何构建高效的解析器。GUI 开发部分则从简单的 Swing 应用程序入手,逐步讲解了组件创建、布局管理及事件处理机制,帮助开发者快速构建交互式界面。通过详细代码示例和流程图,全面展示了 Scala 在解析器设计与图形界面开发方面的强 阅读详情

scala swing简单教程1:https://www.scala-lang.org/old/sites/default/files/sids/imaier/Mon,%202009-11-02,%2008:55/scala-swing-design.pdf

或教程2“Progrmming in Scala” Chapter 34 GUI Programming

详细教程3:https://docs.oracle.com/javase/tutorial/uiswing

例程和教学4:http://otfried.org/scala/gui.html

官方例程5:https://github.com/ingoem/scala-swing/tree/master/scala/swing/test

 

scala GUI 对象通常继承自scala.swing.SimpleSwingApplication(也可不继承,如教程4),SimpleSwingApplication和传统的scala.App有很多不一样,它定义的main函数(实际上是继承自SwingApplication的)里不仅有一些java Swing的设置代码,还会继续调用top函数,并打开top函数返回的Frame。top函数具体实现需要用户自己通过匿名函数方式编写。Top函数不带参数,需返回swing.Frame或者swing.MainFrame对象。Frame是一个能包含任何内容的窗口,MainFrame继承自Frame,仅重写了Frame的closeOperation()函数,使得MainFrame关闭后会自动关闭GUI应用。

从教程4可以看到,MainFrame或者Frame可以直接在自定义的main函数中调用并显示窗口。Frame有很多属性(attributes),可通过匿名函数设置或继承设置,其中最重要的两个为title和contents. title接受字符串,在窗口顶端显示,contents会在窗口中显示,接受继承自scala.swing.Component的对象,比如lscala.swing.Label和scala.swing.Button.  Frame的这些attributes是以property形式存在的,有getter和setter方法。


 

 

 


 

SimpleSwingApplication继承自SwingApplication,Method startup is called in the default main method implementation and needs to be implemented
by clients. It is called on the Swing event dispatching thread. Method quit should be called to gracefully quit the application. It calls method shutdown as the last step before ultimately terminating the application. Method shutdown should be overwritten by clients who need to cleanup resources and run shutdown specific code.
Subclass SimpleSwingApplication provides a default implementation for method startup that shows the frame returned by the client’s implementation of method top.


 

 

 

scala-swing:用于桌面GUI的Java Swing API的Scala包装器 立即下载

相关推荐

scalaui:基于libui的Scala本机GUI框架

scalaui:基于libui的Scala本机GUI框架

新手上路,各种记录: Scala Swing

一直都想做一下 C/S,但是没什么机会。这几天趁着有空玩了一下唯一接触过一点的 Swing,顺便总结总结。话说,绝大部分时间花在了代码着色上了,结果无功而返哈,笑:) 话说,这篇文章就在这连半成品都不算的小应用上写的呢。中间一直想换成 docat webapp 来写,担心出了神马毛病整篇文章就...

277

scala-swing

scala swing从scala中分离出来了,需要额外加入jar包 scala-swing_2.11-1.0.1.jar scala-swing_2.11-1.0.1.jar scala-swing_2.11-1.0.1.jar scala-swing_2.11-1.0.1.jar

Scala-Swing 入门指南

Scala-Swing 入门指南 项目介绍 Scala-Swing 是一个为 Scala 设计的轻量级库,它提供了对 Java Swing 的优雅封装,使得在 Scala 中开发图形用户界面(GUI)变得更加简洁且类型安全。通过利用 Scala 的高级特性,如模式匹配、函数式编程等,Scala-Swing简化了GUI编程的复杂性,同时保持了应用程序的可维护性和可读性。这个项目是官方支持的一个子项目...

gitblog_00092的博客 652

嵌入式设备低功耗设计误区:为什么你的RK3568总是被‘意外’唤醒?

本文深入分析RK3568嵌入式设备低功耗设计中的常见误区,重点探讨唤醒源管理不当导致的意外唤醒问题。通过解析硬件设计陷阱、软件配置错误及系统化审计方法,帮助开发者有效排查和解决GPIO配置、唤醒源设置等关键因素引起的功耗异常,提升设备续航能力。

php55的博客 460

网络安全实战:从Wireshark到BurpSuite的抓包技巧解析

本文深入解析了Wireshark和BurpSuite在网络安全抓包中的实战技巧,从基础对比到高级过滤、核心模块应用及安全测试避坑指南。通过详细的操作步骤和案例分析,帮助读者掌握数据包抓取与分析的核心技能,提升网络安全防护能力。

weixin_29207533的博客 573

探索Scala-Swing:简洁高效的GUI构建工具箱

探索Scala-Swing:简洁高效的GUI构建工具箱 在寻找一种优雅的方式将复杂的图形用户界面(GUI)带入您的Scala项目中吗?Scala-Swing正是您所需的答案。本文旨在深入介绍这个强大且用户友好的库,展示其如何结合Scala的优雅和Java Swing的强大功能,为开发者提供一套高效、易用的GUI开发工具。 项目介绍 Scala-Swing是一个轻量级的UI库,它巧妙地封装了Java...

gitblog_00072的博客 568

SAP 物料账前期没有运行的解决方法

If you use the actual costing (material ledger), you must have completely closed all period-end closing operations in the actual costing for the penultimate period prior to the period shift. Use the '...

含笑饮砒霜死后更嚣张 3316

Scala-Swing 项目推荐

Scala-Swing 项目推荐 项目基础介绍和主要编程语言 Scala-Swing 是一个为 Scala 语言设计的桌面图形用户界面(GUI)库,它提供了对 Java Swing API 的封装。Scala-Swing 的主要编程语言是 Scala,它利用 Scala 的简洁语法和强大的类型系统,使得开发者能够更方便地构建桌面应用程序。 项目核心功能 Scala-Swing 的核心功能包括: ...

gitblog_00165的博客 845

硬件压力测试工具使用方法

B, --bind host# 绑定到主机的多个地址中的一个。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。-c, --client host#如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。-C, --compatibility# 与低版本的Iperf使用时,可以使用兼容模式。-b, --bandwidth #[KM] UDP模式使用的带宽,单位bits/sec。

weixin_53303772的博客 8215

基于FPGA的IIR数字滤波器设计

一种是在直接法的基础上,采用预见的算法,目的是提高系统的吞吐量(指对于网络、端口设备或者其他的设施,单位时间内成功传输数据的数量,比特、字节和分组是吞吐量常用的单位),带有预见算法编程实现的IIR数字滤波器有更多的优点,例如:数据传送速度快,效率高等等;设计模拟滤波器时,它的电路一般都很复杂,而且分析起来也很麻烦,电路的复杂性就决定了使用的器件必定很多,很复杂,就这一方面看来,数字滤波器的设计要更加简单灵活,并且模拟电路不容易改变系统的参数,它的性能还很容易受到温度环境的影响,使得噪声很大。

毕业设计区博客 2117

Scala教程(十九)Scala界面GUI编程

Scala开发图形用户界面(GUI)的应用程序基于一个Scala库,该类库提供对Java的Swing框架的GUI类访问。该类库和它的下层的Swing类很像,隐藏了大部分的复杂度,使Scala开发图形用户界面开发变得易容。 使用Swing编程,你需要从Scala的SwingAPI导入类。import scala.swing._ 在Java的GUI,容器是很重要图形界面开发的一种思想,同样在Scala中也提供了容器的概念。面板:用于容纳将构建的按钮、标签等组件。布局:使用Panel类的各种子类实现各种不同的布局

yuan_xw的专栏 6805

华为IC岗笔试刷题含答案(2)

又做了几套题,记录了部分及答案,如有错误,欢迎评论指正。

Ingrid的博客 1万+

Scala-Swing 开源项目快速指南

Scala-Swing 开源项目快速指南 项目概述 Scala-Swing是Scala语言对Java Swing库的一个高级封装,使得开发者能够利用Scala强大的函数式编程特性和简洁的语法来构建用户界面。这个开源项目简化了桌面GUI应用程序的开发过程,保持了跨平台的兼容性。 项目目录结构及介绍 以下是对scala-swing项目基本目录结构的简要分析: scala-swing/ ├── buil...

gitblog_00238的博客 536

Electron多窗口开发避坑指南:Pinia状态同步的3种解决方案对比

本文深入探讨了在Electron多窗口应用中实现Pinia状态同步的三种核心方案。针对Electron多窗口架构下状态隔离的挑战,文章对比了基础事件通信、共享存储以及智能Pinia插件等方案的优劣与适用场景,并提供了生产级的实现指南与选型建议,帮助开发者构建健壮高效的桌面应用。

spice的博客 479

【ARM CoreLink 系列 7 -- TZC-400控制器简介】

为了确保内存能够正确识别总线的信号控制位,新增一个TrustZone地址空间控制器(TrustZone Address Space Controller,TZASC)组件来实现对内存地址的安全扩展,将内存区域划分为安全内存区域和非安全内存区域,安全世界可以访问安全内存和非安全内存,而普通世界只能访问非安全内存,如下图所示:图 1-1内存区域的划分是在系统启动时通过配置 TZASC 组件(TZC-400/TZC-380)来实现的。TZC-400由和使能情况;安全访问权限;Base地址;

CodingCos的博客 1634

**Scala-Swing 开源项目指南及常见问题解决方案**

Scala-Swing 开源项目指南及常见问题解决方案 Scala-Swing 是由 优快云 公司开发的 InsCode AI 大模型基于提供的信息进行整理的一个面向Scala开发者的重要开源项目。此库以Scala语言编写的Java Swing的封装,致力于简化桌面GUI应用的开发。下面将为您介绍该项目的基础信息,并列出新手使用过程中可能遇到的三个常见问题及其详细解决方案。 项目基础介绍 项目...

gitblog_00746的博客 721

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

第70讲:Scala界面GUI编程实战详解 学习笔记: 实际编程时有一个重要框架:akka。akka封装了actor。 scala作界面 开发时有一个库,提供了java的swing的封装。 实战代码: package com.dt.scala.gui import scala.swing._    //swing里有很多组件,如applet等。 obj

slq1023的博客 2016

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Scala学习笔记12 - GUI编程

===GUI编程       scala图形用户界面编程可以使用scala.swing库,该库提供了对java的Swing框架的GUI类的访问,对其进行包装,隐藏了大部分复杂度。示例如下:       object MyScalaGUI extends SimpleSwingApplication {          deftop = new MainFrame {

guohecang的博客 1741

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Scala语言的图形用户界面

Scala是一门融合了面向对象编程和函数式编程特性的编程语言。由马丁·奥德斯基(Martin Odersky)在2003年首次发布。Scala运行在Java虚拟机(JVM)上,可以与Java代码无缝集成,因此Java中的许多图形用户界面库(如Swing和JavaFX)都可以在Scala中使用。简洁性:Scala的语法相较于Java更为简洁,使得开发过程更加高效。函数式编程:Scala支持一等公民的函数,可以通过高阶函数、闭包等特性实现更灵活的编程风格。类型推导。

2501_90571194的博客 951

Scala-Swing 项目教程

Scala-Swing 项目教程 1. 项目目录结构及介绍 Scala-Swing 项目的目录结构如下: scala-swing/ ├── docs/ ├── examples/ │ └── src/ │ └── main/ │ └── scala/ │ └── scala/ │ └── swing...

gitblog_00036的博客 385

scala actor swing代码实践

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 【DT大数据梦工厂视频】《第72讲:Scala界面事件处理编程实战详解》 视频观看地址:http: 百度网盘:http://pan.baidu.com/s/1o6FvweQ                             本期视频重点:

arsenal04的专栏 725

第70讲:Scala界面GUI编程入门

实例代码import scala.swing._ object Hello_Gui extends SimpleSwingApplication{ def top = new MainFrame{ time = "hello, scala gui" contents = new Button{ text = "scala => spark!!!" } } }

2793

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

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

52Pig的专栏 1311
上一篇: Kmeans聚类K值选择Parametric Bootstrap方法,以及数据重抽样方法Bootstrapping
下一篇: Spark中RDD的创建与存储
Code_LT
博客等级 码龄10年 307粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值