I write a lot of JavaScript, and closures are easily one of it’s best features. It is not that they will allow you to do anything new; it is that you can do the same in a more natural way. This means libraries will use closures more often, as they are much easier to wield then anonymous classes. Once your leveraging closures, there are lots of advantages.
The main one is that it allows libraries and frameworks to have more control over how they are used. It is very common to build a library, that manages some code, but has to be used in a specific way. As a result you can be expected to always call specific methods before performing certain tasks, or calling items in a specific order. Closures allow you to wrap up whatever task it is you are performing, then just hand it over, and have the library call it for you (at the right time).
For example asynchronously downloading multiple files, and running a task when they are all complete. Another example is being able to repopulate a cache, on the fly, when missing items are queried for. The task to generate those missing values can be stored inside the cache, using a closure. These are simpler to build if you can easily wrap up tasks to be passed in.
It can also allow you to build more efficient architectures. For example I once built a grid based data structure that partitioned sprites based on their class. It used custom data structures, but for simplicity, it was essentially a: Map<Integer, Map<Integer, Map<Class, List>>>. As you can imagine, iterating over that is not trivial, and a naive implementation requires using lots of iterator objects nested inside of each other. This iteration loop would build a list of Sprites to return, which would then be iterated over a second time by the caller. To improve this I built a version which used anonymous classes, and this allowed me to remove all of the iterator objects, the returned list, and the second bout of iteration. What is really important, is that is was simpler to optimize this using anonymous objects, then using a complex iterator solution. Closures make it more natural to build these solutions.
Finally writing a Swing UI is far too verbose. One of the issues is the large number of action listeners, and and closures would greatly reduce the amount of noise in your code.