I’m working on Java Swing application with Google Guice as an IOC container. Things are working pretty well. There are some UI problems. When a standard L&F is replaced with Pushing pixels Substance L&F application is not running due to Guice’s Swing components creation outside of UI thread.
Is there a way to tell Guice to create Swing components in the UI thread?
Maybe I should create custom providers which will return Swing components after SwingUtilities.invokeAndWait(Runnable) creates them.
I don’t like the idea of running the whole application in UI thread, but maybe it’s just a perfect solution.
IMO you should not create components using Guice but services which in turn will create your components. Once you have you service injected it should be easy to make sure that component creation happens on EDT (using
invokeAndWait)