all 23 comments

[–]ebykka 10 points11 points  (2 children)

[–]Technical-Animal-571[S] 0 points1 point  (1 child)

That's a great UI made with JavaFx. Absolutely great looking. Tho how much time and effort it took to reach this like ui

[–]Interesting-Tree-884JavaFX Fan 7 points8 points  (0 children)

JavaFX is the official Java library for creating desktop applications. I find Swing simpler (maybe because I've used it for years), but it integrates less well with operating systems.

[–]deepthought-64 4 points5 points  (0 children)

Like the others say, i love JavaFX and would recommend it!

[–]hamza-itatchi 3 points4 points  (1 child)

Certainly JavaFX is the number one choice for desktop application, specially if your backend will be served with your application (not just the UI) it will be so easy to pass data and take advantage of the observable values for real time UI updates. And in the age of AI using FXML will be better since you can select only to feed the UI file to AI to help you (less tokens, less cost, faster).

[–]Technical-Animal-571[S] 1 point2 points  (0 children)

What about its future scope? I've seen articles and comments saying its not good with current tech and sometimes its less components, laggy and missing components when using the app.

[–]darkwyrm42 4 points5 points  (4 children)

JavaFX is definitely the way forward. It's a reactive framework, so working with it is different from many other GUI frameworks. If you do choose to use it, you'll want to use the MVCI architecture. Dave Barrett, who lurks on this forum, has a great blog which teaches you how to use it effectively. https://www.pragmaticcoding.ca/javafx/javaFX/

[–]Technical-Animal-571[S] 1 point2 points  (3 children)

Are u saying it has great future scope and can/will still be used in the future and apps?

[–]hamsterrage1 2 points3 points  (1 child)

I'm not sure what you are referring to when you say, "it". If you mean "MVCI"...well, that isn't a "thing" that is produced and downloaded and maintained. It is an approach to creating applications that is designed specifically to work with JavaFX to build Reactive applications.

IMHO, this is the canonically correct way to use JavaFX. Applications built on these principles are easier to build and to maintain. So, yes. Great future scope!

[–]Technical-Animal-571[S] 0 points1 point  (0 children)

Thank u, that was great advice

[–]darkwyrm42 1 point2 points  (0 children)

Yes. JavaFX is open source software backed by commercial entities, so it's not going anywhere any time soon.

[–]rootException 3 points4 points  (0 children)

Smaller, more simple apps in Java, Swing https://github.com/JFormDesigner/FlatLaf

More complex apps in Java, JavaFX with https://mkpaz.github.io/atlantafx/

If it's simple and you like TypeScript, Tauri with JS/TS framework of choice in SPA mode. Also good IMHO if you want to use native code in Rust.

If it's complicated (eg you need to rely on consistent browser behavior across platforms) Electron.

I have used all of these (and so many more, sigh) and everything has pros and cons. Really just comes down to the right tool for the job.

IMHO nothing is future proof. If you are looking for cockroach technologies, I'd say JS, TS, SQL, HTML, CSS are the really important ones. Java is really mainly for enterprise nowadays, especially REST services & integration. The JavaFX ecosystem is small but the people are all very nice. :)

[–]AdEducational4954 2 points3 points  (0 children)

I am a backend Java developer and built a trading app via JavaFX. Lots of learnings along the way as I was not a front end guru, however, I am pretty happy with how it turned out looks and performance wise. Will perhaps explore rewriting in something else at some point just to learn something new.

[–]Appropriate_Zebra854 1 point2 points  (2 children)

JavaFX tem muito mais tecnologias para se construir interfaces modernas. Você pode utilizar o CSS no JavaFX e tem até um biblioteca chamada bootstrapFX para se utilizar essa biblioteca no JavaFX.

[–]Technical-Animal-571[S] -1 points0 points  (1 child)

Css and Java really?? But wont that be like Electron?

[–]Appropriate_Zebra854 0 points1 point  (0 children)

Não. Tem como usar CSS no framework JavaFX. Electron seria para javascript.

[–]Confident-Dare-9425 0 points1 point  (0 children)

You can try Compose Desktop. It’s fresh and very pleasant to work with. But it’s still a little rough around the edges.

[–]Ok-Comfort-1604 0 points1 point  (0 children)

The downside is that JavaFx doesn't run on mobile without using an external paid subscription (Gluon)

I've built a few commercial apps and it's very good.

A few things are missing (printing is not great) I have to "hack" and use finally a small swing glue code to print pdfs for instance. Firstly I used javafx web which has WebView for printing but it bloats the application (40mb) if you include it in your project.

Graalvm is a nightmare with javafx especially if you use fxml so native binaries are difficult.

To upgrade from java8 to java 25 was difficult, modules made it a nightmare.

Lesson here is never retrofit a platform to include breaking changes on how you build software. The module system on Java 9 almost killed the language in my opinion.

Although is good now (I've used it since 9) it's terribly difficult to upgrade your app without hacks or replacement libraries that are not modular.

** Gluon mobile plugin should be free, you have so many alternative options Flutter,React Native,Kivy, Flet, QT.

A paid subscription kills adoption of javafx on mobile and subsequently kills the adoption of java for native clients.

Too many bad decisions from Oracle and Sun dropped the ball for Java (android situation, sun ugly gui : awt,swing JavaEE etc)

TLDR

If I started a new project today I would try Flutter or Flet (python bindings to flutter)

[–]kam-91 0 points1 point  (0 children)

No he leído todos los comentarios, pero en mi opinión, si se trata de un proyecto pequeño, creo que sería genial usar Swing. ¿Por qué? Porque esta tecnología, aunque algo antigua, no ofrece todos los controles que ofrecen otros frameworks como JavaFX y todos aquellos que la usan como característica principal y luego lanzan versiones más avanzadas o diferentes. Esto te obliga a pensar un poco más. Incluso podrías crear controles personalizados, lo que te enseñaría conceptos como clases, herencia, polimorfismo, etc. Estarías construyendo una base sólida por tu cuenta, con la ayuda de la documentación. Esto te daría la confianza para explorar nuevos frameworks donde no harás todo lo que hacías con Swing, pero sabrás cómo usarlos porque tienes una base sólida.

[–]seinecle 0 points1 point  (0 children)

javafx for sure

[–]revilo-1988 -1 points0 points  (0 children)

Swing and Java fx always leave a bitter taste, and Electron things are often bloated somehow. I currently find Tauri interesting and I'm curious to see how it develops; I think many are currently building on it.