DesktopPaneFX 0.9.0 released!

Version 0.9.0 of DesktopPaneFX has just been released! You can download it directly from Bintray’s JCenter and/or Maven Central. This version delivers the following changes: The title bar has been moved out from InternalWindow into its own component: TitleBar. This is a breaking change as some properties and methods have been migrated to the new class. InternalWindow can only be dragged from its title bar. Previous versions allowed dragging from anywhere within the window. InternalWindow now exposes a resizable property. There’s also a new incubating feature that made the cut: the ability to detach and attach windows to a DesktopPane. Read More


Multi-module project builds with Maven and Gradle

Just came back from wonderful JCreteยฎ 2018. This year didn’t disappoint, we had close to 110 people openly sharing ideas and knowledge on both technical and soft skills matters. Here’s a picture of the final schedule, captured by fellow Java Champion Badr Elhouari: If you are wondering what was the schedule of @JCreteUnconf 2018! Really ๐Ÿ’œ my first #JCrete & #Unconference experience ๐Ÿคฉ brilliant people with top notch content. Thanks a lot for all the disorganizers @heinzkabutz @javaperftuning @rgransberger @aalmiray @IXSC & others ๐Ÿ‘๐Ÿ’ช๐Ÿ‘Œ pic.twitter.com/iHk0dxSqle โ€” Badr Elhouari (@badrelhouari) July 26, 2018 Every single one of those notes represents a Read More


Griffon Mythbusthers

I’ve seen myths surrounding the Griffon framework appear over the years, I think it’s time to set the record straight and dispel any misinformation. Myth: Griffon projects require Gradle as a build tool. Incorrect. The preferred choice for building Griffon projects is Gradle if you happen to use a Lazybones template to bootstrap the project, however you may use Apache Maven, Apache Ant, or any other JVM build tool (even Make if you really want to) to build a Griffon project. Myth: Griffon projects can only be bootstrapped with Lazybones. Incorrect. The preferred choice for bootstrapping a Griffon project is Read More


Sassy JavaFX

As may JavaFX developers know, it’s possible to style a JavaFX application using CSS, which is quite refreshing compared to previous alternatives. Unfortunately this CSS support is confined to a subset of CSS 2.1 (see here for more information). This means we can’t rely on the latest and greatest features available in CSS3 and beyond, bummer. However we can get some of those missing features (such as variables!) if we turn to less or Sass. I’ve picked Sass as at the time of writing both Gradle and Maven plugins for less seem to have stopped development altogether. Now, there are Read More


Creating aggregate JavaFX bindings

The standard JavaFX API provides a class named Bindings that can be used to create all kinds of bindings your application may need. Methods in this class can be used to translate any Observable, ObservableValue, Binding, Expression, and/or Property into another Binding, regardless of their original type. Here’s for example how you could translate a StringProperty into an IntegerBinding, by exposing the length of the contained String: StringBinding sourceBinding = … // initialized elsewhere IntegerBinding lengthBinding = Bindings.createIntegerBinding( () -> sourceBinding.get().length(), sourceBinding); While quick and to the point we’re forced to read the value directly from the inputs (in this Read More


Announcing DesktopPaneFX

Recently at work we faced the need of implementing a user interface that delivered similar features as the ones exposed by Java Swing’s JDesktopPane but for JavaFX. Unfortunately JavaFX does not provide such component out of the box, nor do the most common JavaFX controls projects out there. There are however a few attempts to put something together but most never left the prototype stage or have been abandoned. That’s how I found JavaFXMDI, which seemed to have the right approach but was left unattended for close to 3 years. Fortunately the code was published as Open Source, thus after Read More


May Java be with You!

May was quite a hectic but fun month for me. The month began with a new state of mind as I found myself without a job albeit not for long as I’d join my next employer at the beginning of June, and though that was the plan all along I couldn’t shake the feeling of having to cut short a particular experience just to get back to work e-mails. Despite finding myself unemployed for a month I didn’t get much time to slack off as the next 5 weeks proved to be quite the ride round the globe (quite literally!) Read More


Customize JAR manifest entries with Maven/Gradle

How many times have you found yourself in a situation where you can’t tell if the artifacts used by the application are the correct ones or not? How many times have you looked at a bug report stating that the problem is caused by version X of a particular artifact but you are certain the bug was fixed in said release? On closer inspection (after unpacking, debugging, even decompiling!) you find that the artifact in production is not the right one even though the version appears to be the correct one. One option we have to mitigate this problem is Read More


Maven scopes vs. Gradle configurations

Both Maven and Gradle are popular choices when it comes to building Java projects. These tools share common traits but there are some key differences that make you more productive depending on a particular scenario (no, I’m not referring to the XML DSL vs. Groovy/Kotlin DSL schism), case in point scopes vs. configurations. Scopes and configurations are used by each tool to define dependencies and how they affect different classpaths, such as the compilation and runtime classpaths. Maven defines 6 scopes: compile, runtime, provided, system, test, and import. Gradle on the other hand defines the following configurations when the Java Read More


Contributing to JavaFX

Johan Vos (@johanvos) has setup a mirror of the official OpenJFX codebase as a repository at Github (https://github.com/javafxports/openjdk-jfx. This repository allows anyone interested in contributing to JavaFX to be able to send patches to the project. Would you like to join the efforts to move JavaFX forward? These are the steps you must follow with the current pipeline: Have a Github account. It only takes a few minutes to setup and it’s free! Have a bug/feature in mind you’d like to see fixed/added to JavaFX. Browse the list of open issues at https://github.com/javafxports/openjdk-jfx/issues to see if you can help; discussing Read More


ˆ Back To Top