All Projects → scalafx → Scalafx

scalafx / Scalafx

Licence: other
ScalaFX simplifies creation of JavaFX-based user interfaces in Scala

Programming Languages

scala
5932 projects

Labels

Projects that are alternatives of or similar to Scalafx

Jetuml
A desktop application for fast UML diagramming.
Stars: ✭ 346 (-37.66%)
Mutual labels:  javafx
Library Assistant
Modern Library Management Software using JavaFX
Stars: ✭ 380 (-31.53%)
Mutual labels:  javafx
Xr3player
🎧 🎼 Advanced JavaFX Media Player
Stars: ✭ 472 (-14.95%)
Mutual labels:  javafx
Springboot Javafx Support
SpringBoot / JavaFX8 Integration
Stars: ✭ 354 (-36.22%)
Mutual labels:  javafx
Fn Fx
A Functional API around JavaFX / OpenJFX.
Stars: ✭ 373 (-32.79%)
Mutual labels:  javafx
Codeguide
📚 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、点赞、分享)!
Stars: ✭ 6,750 (+1116.22%)
Mutual labels:  javafx
Tornadofx
Lightweight JavaFX Framework for Kotlin
Stars: ✭ 3,499 (+530.45%)
Mutual labels:  javafx
Medusa
A JavaFX library for Gauges
Stars: ✭ 503 (-9.37%)
Mutual labels:  javafx
Formsfx
A framework for easily creating forms for a JavaFX UI.
Stars: ✭ 380 (-31.53%)
Mutual labels:  javafx
Phoenicis
Phoenicis PlayOnLinux and PlayOnMac 5 repository
Stars: ✭ 457 (-17.66%)
Mutual labels:  javafx
Scenebuilder
Scene Builder is a visual, drag n drop, layout tool for designing JavaFX application user interfaces.
Stars: ✭ 351 (-36.76%)
Mutual labels:  javafx
Im
仿QQ即时通讯系统服务端
Stars: ✭ 369 (-33.51%)
Mutual labels:  javafx
Javafx Gradle Plugin
Gradle plugin for JavaFX
Stars: ✭ 425 (-23.42%)
Mutual labels:  javafx
Samples
JavaFX samples to run with different options and build tools
Stars: ✭ 352 (-36.58%)
Mutual labels:  javafx
Rxjavafx
RxJava bindings for JavaFX
Stars: ✭ 489 (-11.89%)
Mutual labels:  javafx
Latexdraw
A vector drawing editor for LaTeX (JavaFX).
Stars: ✭ 336 (-39.46%)
Mutual labels:  javafx
Jfxtras Styles
Java, JavaFX themes or look and feels. Currently contains JMetro theme.
Stars: ✭ 412 (-25.77%)
Mutual labels:  javafx
Blobsaver
A cross-platform GUI app for saving SHSH blobs using tsschecker
Stars: ✭ 529 (-4.68%)
Mutual labels:  javafx
Qupath
QuPath - Bioimage analysis & digital pathology
Stars: ✭ 503 (-9.37%)
Mutual labels:  javafx
Preferencesfx
A framework for easily creating a UI for application settings / preferences.
Stars: ✭ 449 (-19.1%)
Mutual labels:  javafx

ScalaFX

Join the chat at https://gitter.im/scalafx/scalafx

Build Status Maven Central Scaladoc

ScalaFX is a UI DSL written within the Scala Language that sits on top of JavaFX. This means that every ScalaFX application is also a valid Scala application. By extension, it supports full interoperability with Java and can run anywhere the Java Virtual Machine (JVM) and JavaFX are supported.

If you have ScalaFX related questions please use ScalaFX Discussions, or ScalaFX Users Group, or ScalaFX on StackOverflow. Please report any problems using ScalaFX Issue Tracker.

Getting Started

ScalaFX binaries are published in the Maven Central repository: http://search.maven.org/#search|ga|1|scalafx

ScalaFX source code is using the SBT build system. For information on building with SBT see README-SBT.txt.

The official web site for ScalaFX is http://scalafx.org.

ScalaFX Dependencies

ScalaFX 12 is the current actively maintained version. ScalaFX 12 is intended to support Java 11 and newer. Staring with Java 11 JavaFX is no longer part of Java distribution. In addition to ScalaFX, JavaFX binaries needs to be explicitly added to a project. JavaFX binaries depend on operating system used. Add following to SBT configuration:

// Add dependency on ScalaFX library
libraryDependencies += "org.scalafx" %% "scalafx" % "15.0.1-R21"

// Determine OS version of JavaFX binaries
lazy val osName = System.getProperty("os.name") match {
  case n if n.startsWith("Linux")   => "linux"
  case n if n.startsWith("Mac")     => "mac"
  case n if n.startsWith("Windows") => "win"
  case _ => throw new Exception("Unknown platform!")
}

// Add dependency on JavaFX libraries, OS dependent
lazy val javaFXModules = Seq("base", "controls", "fxml", "graphics", "media", "swing", "web")
libraryDependencies ++= javaFXModules.map( m =>
  "org.openjfx" % s"javafx-$m" % "15.0.1" classifier osName
)

If you're using Mill:

object yourProject extends ScalaModule {

  // Determine OS version of JavaFX binaries
  lazy val osName = System.getProperty("os.name") match {
    case n if n.startsWith("Linux")   => "linux"
    case n if n.startsWith("Mac")     => "mac"
    case n if n.startsWith("Windows") => "win"
    case _                            => throw new Exception("Unknown platform!")
  }

  // Add dependency on JavaFX libraries, OS dependent
  val javaFXModules = List("base", "controls", "fxml", "graphics", "media", "swing", "web")
    .map(m => ivy"org.openjfx:javafx-$m:15.0.1;classifier=$osName")

  def ivyDeps = {
    Agg(
      ivy"org.scalafx::scalafx:15.0.1-R21"
    ) ++ javaFXModules
  }
}

What is in the version number

ScalaFX version number has two part. The first part corresponds to the latest JavaFX version it was tested with. The second part is an incremental release number. For instance, version 15.0.1-R20 means that it was tested with JavaFX version 15 and that is the 20th release of ScalaFX.

Legacy Releases

ScalaFX 10

with Java 10 use:

libraryDependencies += "org.scalafx" %% "scalafx" % "10.0.2-R15"
ScalaFX 8

To use ScalaFX with SBT and Java 8 add following dependency (to use the latest scalafx you might need Java version at least 1.8.40):

libraryDependencies += "org.scalafx" %% "scalafx" % "8.0.192-R14"
ScalaFX 2

With Java 7 use:

libraryDependencies += "org.scalafx" %% "scalafx" % "2.2.76-R11"

Demo Projects and Examples

The ScalaFX Organization page on GitHub contains several sample project that illustrate use of ScalaFX. The simplest one, and recommended to start with, is scalafx-hello-world.

Development Snapshots

Snapshot releases are also regularly published on Sonatype Snapshots. To use a snapshot build you may need to add "Sonatype OSS Snapshots" resolver to you SBT configuration:

resolvers += Opts.resolver.sonatypeSnapshots

If you just want to download a recent snapshot build you can also use Travis CI build site https://travis-ci.org/scalafx/scalafx

Software License

This software licensed under BSD Open Source.

The License text for this software can be found in LICENSE.txt in the root folder of the project.

Software Required

The following software is needed to build ScalaFX:

  1. SBT v.1.0.0 or better
  2. Scala. ScalaFX 12 builds with Scala 2.10.2 or newer.

It works with Windows, MacOS X and Linux ports.

Project Structure

The current project directory structure:

./notes
./project
./scalafx
./scalafx-demos

Where . is a the root folder of the project.

The notes folder contains release notes for past releases.

The scalafx folder is the sub project for the ScalaFX Framework.

The scalafx-demos is the sub project for the ScalaFX Framework Demonstrations (some are a bit out of date, help needed here :).

The project folder is reserved for SBT build system setup.

Source Code Branching Policy

The current development is for ScalaFX 12. The development is done on the master branch. Releases are done on the stable branch. Releases are tagged with version number. Pull requests are only accepted off a brunch created from the master branch. When working on a pull request, create a separate branch for each feature or bug fix. This way the main development branch is not blocked by a pull request and pull requests are easier to merge individually.

The ScalaFX 8 and 2.2 development is no longer active. For those who need it, the code is on branches: SFX-8 and SFX-2. Past releases are on SFX-8-stable and SFX-2-stable branches.

Authors

ScalaFX was originally created by Stephen Chin, Java Champion, Oracle JavaOne program chair; and Sven Reimers, a member of the Netbeans Dream Team.

Credits

The most up to date list of contributors to the project can be found on the Contributors page.

Community

We request all the team members to follow the Typelevel Code of Conduct in our mailinglist, issue discussion, Gitter room or any of ScalaFX meetups.

For more info on Contribute, check our Contributing page.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].