I always coded console applications and learned some basic UML/patterns skills, using C++.
Now I decided to move to Java and add GUIs to my programs.
The first question is how to handle the GUI layer in the program desing. I mean, how I should separate all the GUI code (adding components, basic event handling) with the code that really does the job (say, when some button is pressed).
Another question its related about the EDT. I read that (almost) all Swing components must run in the same thread (usually the EDT) because of they're not thread safe. So I thought that if "heavy code" it's called from (for example) an ActionListener, then the GUI will become irresponsive for some time until that "heavy code" finish.
That's pretty undesirable, so I think the natural solution is to run the heavy code maybe in another thread or do something like this (I know that this has to be done carefully because I coudn't assume any more that after the user clicked a button, the "deep action" is done before handling another GUI event).
So as you see, I have plenty of questions about how to include GUI in my patterns to keep all quite independent and easy maintainable; and some questions about particular things of Swing components and responsiveness.
I'm sorry in advance for my quite bad english.