From some articles, it said that if it is required to access Swing components from a thread other than the event dispatching thread, "InvokeLater" should be used for threadsafe. In my client program, I will create a connection frame when the "Connect" button is clicked. When the window is closed (WindowListener is used), I will try to make connection to the Data Server. Thus, I do not create a new thread in my client program. Does it mean that I do not need to use "InvokeLater"? I saw that the assignment mentioned the threadsafe requirement. I am not sure if my client program implementation is correct. Can anyone kindly give me some opinion?
From my experience I know that displaying a JDialog from the event dispatch thread and performing GUI updates after that could lead to repaint/focus problems, no matter if you use invokeLater or not. I don't know if it's a bug (that remains in jdk1.4) or it's me. The only way I've been able to overcome these problems has been by spawning a new thread for each action and use invokeLater to modify the GUI. But I think that is a bit to much for the sort of problems we may face.