Writing software is an exercise in managing abstractions. The more you can reason abstractly about your software system, the better off you are. A key abstraction that's been around in the GUI world since the 1970s is the model-view-controller (MVC) paradigm. I'll discuss MVC briefly here, but there's a lot written about it on the Web, so if it's new to you, you should definitely head over to your favorite search engine and look it up.
In MVC, you divide the code that concerns your user interface into three logical components: