bit off-top: unless you kept up with every new major and maybe study upfront upcomming features - when like stuck with knowledge of a beginners book back for 1.4 and a bit of knowledge of 5.0 (for real: generics are the only v5 stuff I really know - when I use raw types most of my code would compile with 1.4 or may even earlier) with all the new features since change of release model with J9 - one should may consider to re-learn java like a new language
yes, I'm aware of NIO, cocurrency, time, streams, lambdas - and what ever maybe since J9 - but never used them
I even "outlived" FX as I learned only AWT and Swing before FX was a thing - and no it's considered obsolete and removed from releases - and I never used it
btw: with FX marked as obsolete, what's the current gui set to use - as FX should replace Swing as it did with AWT?
Unless I had another programming language that I considered my primary language, I would be concerned if I didn't practice my skills with new features on a regular basis. Arguably the best Java language feature since generics is try-with-resources, and they would have to pay me large amounts of money to work with a Java version older than Java 7. More important than the new language features are the improved APIs. They are numerous, and it's important to stay up to date with them.
As for a GUIs, how do you figure JavaFX is obsolete? OpenJFX in particular is still going strong. Personally I'm still a bigger fan of Swing because the JavaFX APIs are too clunky for my taste, but FXML was a step in the right direction and definitely something I miss in Swing.
Language features are trickier though. Unlike API changes, they aren't as visible. I had to use Google to find https://docs.oracle.com/en/java/javase/12/language/index.html. Out of those changes, I only knew of "Local Variable Type Inference" (var), the forbidding of underscore (_) as variable name, and private interface methods. I forgot about those last two though. I never heard of the improved try-with-resources where you can use pre-existing variables.
well, I'm only a hobbyist - the most advanced/complete project was a networked battleships game (the positioning code was awful - I guess some smartbrain here could simplefy down - but I don't have it anymore)
so, as what I'd learned from this book was enough to get anything done until now - although I'm aware there're newer techniques to do what I do - but never needed to look at those
so, yes, I'm pretty much stuck at very old level - so, to get back up in sync with current java it would be like learn a new language
same goes for my php knowledge stuck back at v4 - after I started learning java and got my head around object oriented programming I also got aware that this is also possible in php - but never practiced it as I didn't wrote any php since
about FX: I can't give you a source, but I remember to had read FX dev was stopped in it's then current version and won't be included in standard jre releases anymore - also it was in debate if and what would follow up to replace it - lost it as I also never played around with FX (mostly cause I don't use an ide but terminal and shell for dev - so I would had to build my own fxml or don't use it at all (if this is even possibl)
same reason for android dev: never got into it as back then it was only avaible as pre-packaged eclipse built environment - setting up to just do some testing with terminsl would had required lots of work - plus that (guess inspired by FX) R.xml stuff
I consider this "to much for the little I play around with my 'hey, I can tell that dumb machine what to do' skills to really put effort in such as full-in-deep learn of some language
I've been retired for several years now so I guess you could classify me as a "hobbyist" too. I have this personal application (which I wrote probably a decade ago, it's a rewrite of the Turbo Pascal version) which I fiddle with from time to time. For example when try-with-resources came out, I modified my app to use that feature. (There were about 50 places where it applied, it's a fairly large application.) And I've rewritten most, maybe all, of the anonymous inner classes as lambdas. There's scope for me to rewrite a lot of loops to use streams, I've done a few but there's a lot more in there I'm sure. I should get going and work on that but now that I'm retired I don't seem to have as much free time as when I was working. I used to upgrade Eclipse every year but now I think I'm three or four versions behind. Anyway, if you have some code to work with like that, it's a good way to learn about new features.
It's written in Swing and when JavaFX was the Next Big Thing I briefly considered rewriting it in JavaFX but that would have been way too much work. But here's something I've noticed: on this forum (my impression) there are more questions being asked about JavaFX than about Swing. So that at least says that it ain't dead yet.
Have you no shame? Have you no decency? Have you no tiny ad?