当前位置: 首页 > 软件库 > 程序开发 > GUI开发框架 >

ScalaFX

JavaFX 的 Scala 绑定
授权协议 BSD
开发语言 Scala
所属分类 程序开发、 GUI开发框架
软件类型 开源软件
地区 不详
投 递 者 西门洛城
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ScalaFX 是用 Scala 语言编写的UI DSL,位于JavaFX 2和JavaFX 8之上。每个ScalaFX应用程序也是有效的Scala应用程序。它支持与Java的完全互操作性,并且可以在支持Java虚拟机(JVM)和JavaFX2或JavaFX8的任何地方运行。

ScalaFX使用简单的分层模式创建新对象并构建场景图。

主要特性如下:

1)对程序员友好的层次结构式的对象创建语法。

stage = new Stage {
  title.value = "Hello Stage"
  width = 600
  height = 450
  scene = new Scene {
    fill = Color.LIGHTGREEN
    content = new Rectangle {
      x = 25
      y = 40
      width = 100
      height = 100
      fill <== when (hover) then Color.GREEN otherwise Color.RED
    }
  }
}

2)易于理解的属性绑定(Binding)语法。

height <== rect1.height + rect2.height
width <== max(rect1.width, rect2.width, rect3.width)
color <== when (hover) then Color.GREEN otherwise Color.RED
text <== when (rect.hover || circle.hover && !disabled) then textField.text + " is enabled" otherwise "disabled"
rect.hover onInvalidate {
  needsRepaint = true
}

3)精心设计的动画语法。

Seq(
  at(0 s) {circle.centerX -> random * 800},
  at(0 s) {circle.centerY -> random * 600},
  at(40 s) {circle.centerX -> random * 800},
  at(40 s) {circle.centerY -> random * 600}
)

4)类型安全的API。

5)无缝的JavaFX/ScalaFX互操作。

  • gradle:3.0.1. 在对Scala的SBT感到有些失望之后,我想要一个更合乎逻辑,更易于理解且拥有更好用户体验的替代方案。 毕竟,特定领域语言的重点是使脚本,公式或语法的编写对用户来说是负担得起的。 DSL必须对用户而言是可理解的,以域语言编写脚本必须相对容易,并且肯定必须基本上没有烦恼。 当然,最好的例子是电子表格,如Excel,XML样式表转换语言(XSLT)和外壳程序脚本(如DOS,

  • 在对Scala的SBT感到有些失望之后,我想要一个更合乎逻辑,更易于理解且拥有更好用户体验的替代方案。 毕竟,特定领域语言的全部目的是使脚本,公式或语法的编写对用户来说是负担得起的。 DSL必须对用户来说是可理解的,以域语言编写脚本必须相对容易,并且肯定必须基本上没有烦恼。 当然,最好的例子是电子表格,如Excel,XML样式表转换语言(XSLT)和外壳程序脚本(如DOS,BASH)。 我最近在S

  • 我正在尝试使用 JavaFX和Scala实现一些简单的笔记管理器与一些思维导图功能. 我试图决定是否直接从Scala或ScalaFX调用JavaFX代码?我不知道是否值得学习ScalaFX,并不是简单直接从Scala代码调用JavaFX? 1)自然语言绑定表达式 – 很好,但是我并没有真正计划使用绑定(我打算使用EventBus进行组间事件和几个绑定用于内部组件事件). 2)定制动画语法 – 我不

 相关资料
  • 2. 函数式编程 2.1 Seq[String] 数组或列表 val strSeq=Seq.apply("hello",world) # 省略 apply val intSeq=Seq(1,2) # 长度 intSeq.length intSeq.size # map 函数,遍历 Seq 中的每个元素,然后将元素传给函数。 intSeq.map(x=>x+1) # flatMap 函数,遍历 S

  • Scala是一门现代的多范式编程语言,旨在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。 Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。 Scala是函数式的

  • 迭代器不是集合,而是逐个访问集合元素的方法。 iterator it上的两个基本操作是next和hasNext 。 对it.next()调用将返回迭代器的下一个元素并提升迭代器的状态。 您可以使用Iterator的it.hasNext方法找出是否有更多元素要返回。 “逐步”迭代器返回的所有元素的最简单方法是使用while循环。 让我们按照以下示例程序进行操作。 例子 (Example) objec

  • 我是Scala的新手。我在想整个逆变关系是如何运作的。我了解协方差和不变量的概念,我也知道如何在实践中实现它们。我还理解了逆变(协方差的反向)的概念,以及它是如何在Scala中的Function1特性中实现的。它为您提供了一种抽象,而无需为不同的类重新定义Function1实现。但是,我还是不完全明白,奇怪吗?现在,我就快到了…我如何用逆变来解决下面的问题: 上面的例子摘自http://blog.

  • <code>Spark</code>版本为1.3.0。 来自< code > sqlcontext . Scala (https://github . com/Apache/spark/blob/master/SQL/core/src/main/Scala/org/Apache/spark/SQL/sqlcontext . Scala)的源代码: 我真的不能理解上面的代码。 是如何工作的? (_)

  • 表单项: input, textarea, select 等. 使用v-model来绑定 输入项 <input v-model="my_value" style='width: 400px'/> 就可以在代码中获取到 this.my_value的值. 表单项的完整例子 <template> <div> input: <input type='text' v-model="input

  • 如何在Gradle Scala项目中指定Scala版本? 官方留档声明依赖项用于获取编译器。 这是否意味着将使用Scala 2.11.1?

  • 起初我是一个初学者 我看过很多教程,读过很多例子,甚至试图从JLS来理解这个主题,但我仍然有一些困惑或误解。 让我给你看我看不懂的问题。