K Miller wrote:I've managed to piece this together with what little I know...
And therein, I suspect, lies the problem.
I'm afraid I don't even want to try and untangle what you've written; save to say that it's WRONG.
Even if it works, nobody in his/her right mind would even try to maintain it.
If it's an attempt at a 'fluid interface' (and I suspect it isn't), it's ill-conceived, because the idea of fluid interfaces is
(b) simplicity of methods
neither of which you've achieved.
My suggestion: Back up, and work out what you want to do. And do it with your computer turned OFF, and in English (or your native language).
Programming is NOT about coding; it's about thinking; and what you've written qualifies for the Jean-Paul Sartres School of Programming:
"I've got a problem; let's start coding and see if a solution simply materializes."
Be advised: the school is very large; but contains very few professional programmers.
I too am not going to read 500 lines of code. But if you are finding that things are not happening in the right order, then probably you didn't stumble across the fact that you have to handle threads in Swing applications carefully. Here's the tutorial to read: Lesson: Concurrency in Swing.