Releases: scalafx/scalafx
Release v.20.0.0-R31
This release supports JavaFX 20. It was tested with Java 17 and Java 20. It can be used with Scala 2.12, 2.13,
and Scala 3+.
Note that JavaFX 20 requires Java 17 or newer. If you need to run on Java earlier than 17, please use
previous releases of ScalaFX.
New Features
- Update JavaFX to version 20 [#388].
ResizeFeaturesBase
is now abstract [#389]AccessibleRole
has now fieldDIALOG
[#390]- Add wrapper and a demo for new method
ObservableValue.when
[#391]
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Release v.19.0.0-R30
This release is intended for JavaFX 19. It was build to support Java 8 binary format, and was tested to work with Java
11 and Java 17. It can be used with Scala 2.12, 2.13, and Scala 3+.
New Features
- Update JavaFX to version 19 [#385]. This adds two new read-only properties
toNode
:focusVisible
andfocusWithin
.
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Full Changelog: v.18.0.2-R29...v.19.0.0-R30
Release v.18.0.2-R29
This release of ScalaFX removed need to explicitly add JavaFX dependencies.
The release is intended for JavaFX 18. It was build to support Java 8 binary format, and was tested to work with Java
11 and Java 17. It can be used with Scala 2.12, 2.13, and Scala 3+.
New Features
- Bump JavaFX to 18.0.2 [#383]
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Full Changelog: v.18.0.1-R28...v.18.0.2-R29
Release v.18.0.1-R28
This release of ScalaFX removed need to explicitly add JavaFX dependencies.
The release is intended for JavaFX 18. It was build to support Java 8 binary format, and was tested to work with Java
11 and Java 17. It can be used with Scala 2.12, 2.13, and Scala 3+.
New Features
- Make ScalaFX dependent on JavaFX non-native binaries [#380]
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Full Changelog: v.18.0.1-R27...v.18.0.1-R28
Release v.18.0.1-R27
This release of ScalaFX adds support for JavaFX 18. The release was build to support Java 8 binary format, and was tested to work with Java 11 and Java 17. It can be used with Scala 2.12, 2.13, and Scala 3+.
New Features
Bug fixes:
- Incorrect deprecation warning for
cellFactory
[#363] - NPE in
TableColumn.cellValueFactory_=
[#371], thanks to @s-bernard - Fix NPEs in
TableColumn
,TreeTableColumn
&Stage
[#372], thanks to @s-bernard
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Release v.17.0.1-R26
This release of ScalaFX adds long awaited support for JavaFX 17. This release was tested to work with Java 11 and Java 17. It can be used with Scala 2.12, 2.13, and Scala 3+.
New Features
- Issue #368 - Support for JavaFX 17, thanks to PR from @rom1dep
Bug fixes:
- Issue #366 - NPE possible when getting a column from a
TableView.ResizeFeatures
#366, thanks to bug report from @s-bernard
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Release v.16.0.0-R25
ScalaFX 16.0.0-R25 supports JavaFX 16. This release was tested to work with Java 11 and Java 16. It can be used
with Scala 2.12, 2.13, and Scala 3.
The main new feature of this release is the simpler way to crate custom cellFactory
(Issue #256). The JavaFX
boilerplate code generation was moved behind the scenes. A correct cellFactory
can be defined with a simple lambda.
For instance, here we render a cell content as a Circle of a given color:
cellFactory = (cell, color) => {
cell.graphic = Circle(fill = color, radius = 8)
}
Compare to the more verbose way that had to be done in previous versions to endure that empty cells are rendered
correctly:
cellFactory = { _ =>
new TableCell[Person, Color] {
item.onChange { (_, _, newColor) =>
graphic =
if (newColor != null)
new Circle {
fill = newColor
radius = 8
}
else
null
}
}
}
You can find a brief description here. There are several examples of how to
use cellFactory
use with different controls in scalafx-demos.
Note that if you use the old way of assigning cellFactory
you will need to be more explicit and provide type
annotations for lambda arguments. Without that some old code may not compile with 16.0.0-R25.
New Features
- Issue #256 - Change custom cellFactory assignment methods to help in correct implementation that avoids
artifacts
Bug fixes:
- Issue #360 - Implicit should convert
jfxa.Application.Parameters
toJFXApp3.Parameters
Updates to documentation and demos:
- Issue #352 - Update scaladoc demos to use
JFXApp3
. Big thanks to @rom1dep for converting the demos. - Issue #353 - Update scalafx.org documentation to use
JFXApp3
instead of deprecatedJFXApp
.
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Release v.16.0.0-R24
ScalaFX 16.0.0-R24 supports JavaFX 16. This release was tested to work with Java 11 and Java 16. It can be used with
Scala 2.12, 2.13, and Scala 3.
Main reason for this release is to correct issue in Scala 3 binaries dependency:
- Issue #355 - Scala 3 build should not depend on scala-reflect 2.13
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Release v.16.0.0-R23
ScalaFX 16.0.0-R23 supports JavaFX 16. This release was tested to work with Java 11 and Java 16. It can be used with
Scala 2.12, 2.13, and Scala 3.
Main reason for this release is to publish binaries for final release of Scala 3.0.0
Changes
-
Issue #349 - Update to Scala 3.0.0-RC3 to final release 3.0.0
-
Issue #345 - Deprecate
JFXApp
. It depends onDelayedInit
that is deprecated since Scala 2.11.0, and no
longer works in Scala 3. -
Issue #137 - Creation of a
TableView
not possible. This issue is due to bug in Scala compiler 2.12, no longer
present in Scala 2.13, nor Scala 3. -
Issue #181 - Type Mismatch in adding
Pane
s to children of aPane
. This issue is due to bug in Scala compiler
2.12, no longer present in Scala 2.13, nor Scala 3.
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.
Release v.16.0.0-R22
ScalaFX 16.0.0-R22 support JavaFX 16. This release was tested to work with Java 11 and Java 16. It can be used with Scala 2.12, 2.13, and Scala 3.0.0-RC3.
Braking changes
-
Issue #340 - make collections creation consistent with Scala collections 2.13 and Scala 3. The change impact
cases when you create a ScalaFX collection from other collections. For instance, beforeObservableBuffer(1,2,3)
andObservableBuffer(Seq(1,2,3))
created collection of typeObservableBuffer[Int]
, this lead to some ambiguities
what the type of the collection should be. To make clear that you want to copy individual elements rather than the
whole collection as a single element usefrom
method. For instance,ObservableBuffer.from(Seq(1,2,3))
will create
collection of typeObservableBuffer[Int]
. NowObservableBuffer(Seq(1,2,3))
will assume that you are passing only
one element of typeSeq[Int]
so it will create collection of typeObservableBuffer[Seq[Int]]
. This behaviour is
consistent with the collection factory methods in Scala 2.13 and Scala 3.In other words, if you provide elements directly, use
ObservableBuffer(1,2,3)
. If you have elements in some other
collection, saymySeq
of typeSeq[Int]
and you want to createObservableBuffer
from its individual elements,
useObservableBuffer.from(mySeq)
. -
Issue #327 - Discontinue support for Scala 2.11 in new release
New Features
- Issue #322 - support Scala 3 #322. ScalaFX now provides Scala 3.0.0-RC3 binaries. Initially, the code base is
intentionally fully compatible with Scala 2.13 (most with Scala 2.12 too). Note thatJFXApp
compiles but does not
run in Scala 3. You need to useJFXApp3
instead. - Issue #344 - update to JavaFX 16.
- Issue #341 - change ObservableBuffer#sort() to take implicit ordering, like Scala collections.
- Issue #339 - simpler use of
DragEvent#acceptTransferModes(...)
Bug Fixes
- Issue #336 Regression: compilation fails when using event.acceptTransferModes #336
- Issue #342 ObservableBuffer#concat collides with Scala's concat #342
For downloads visit ScalaFX on Sonatype or ScalaFX Releases on GitHub. 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.