I try to create small Java tools to help me at my work every now and then. Usually these do not have to be pretty and I find myself coding a single, sometimes massive, Java class. However, now my plan is to create a tool for myself that would parse certain files for me and create desired output as a result. I'd like this tool to have a GUI and I'd like to use Swing for that. However, I cannot seem to get my head around the concept of how I should devise my application - classes, packages and such.
I plan on having a simple Swing GUI with a file chooser, the application will crunch the input (this logic is fairly clear to me), and output the result summary into the GUI and ask the user to specify a directory path where to save the output file(s). How should I separate my application logic into separate classes? I would be fairly happy if someone could point be to a great article or something of the sort; what does the application main class usually include, how should the GUI be separated from the application logic, and so on.
I do not want to cram all my code into a single class anymore, since it does not make my code scale nor easy to maintain.