There is a useful introduction to these two patterns at http://en.wikipedia.org/wiki/Presentation-abstraction-control, so I won't describe them again here. Instead, I want to discuss my experience of using these patterns in production, and the framework I have been experimenting with.
Here is a simple and easy to use Table Model for use with Swing a JTable. This was originally part of Babblemind components, but I have enhanced it and moved it to its own project.
It took ages to work out how to do this, so I decided to post it here in the hope someone else will benefit. Here's how to install a keyboard shortcut to a Swing JButton so the button behaves as though it was clicked when the key is pressed.
While I was looking for a way to check if a JEditorPane's text had been changed since the last save, I found a site that actually wanted me to pay for the answer. Bloody cheek. It isn't that tough, but it took a bit of reading. All that is needed is to install a DocumentListener into the editor pane's document. You can download a complete example which includes an ant build file. Just type "ant run" at the shell prompt to run it. You will need ant and JDK >= 1.5 (it may work in older JDKs, but I used 1.5 so I can't be sure).
Here is a small library of components for Java/Swing applications. They require J2SE5 or better. The documentation is a little thin in places -- I originally wrote these for my own use. I use SimpleTableModel in Silk/QL and have used DateField in at work.
vimproject is an add-on script for vim, the *nix text editor for grown up programmers.
To call it an IDE would be seriously overstating the case. But it is a useful way to browse and open the files in a project without having to type the file name each time. It comes into its own on large projects with lots of files in a deep hierarchy where opening a file by typing the name into vim would be a pain.
Gravy is a simple Dependency Injection container for Java. It is particularly targeted at thick client and command line applications.
It does a fraction of what Pico Container and Google Guice do, but it addresses one serious omission from those two containers.
Music Collection is a small (but not too small) database populated with real data. It is available as an SQLite database and as SQL to populate any database (perhaps with some modification).
Whenever I try out a new framework, library or tool that uses a database, I need some data to run it on and that is why I created Music Collection. The database uses some real artist/album/song data from freedb. I downloaded a few updates to avoid a huge download of the whole database, selected a few artists and wrote a Python parser to create SQL insert statements.
A JPA library is available to allow the database to be used with EJB projects and with tools like my Silk JP/QL browser.
Silk/QL is an interactive query tool for the Java Persistence API's QL language. If you don't know what JPA or QL are, you probably don't need Silk.
If you use JPA for your Object/Relational Mapping (ORM) and would like to interactively explore the data in your database, Silk would be what you are looking for.
Silk/QL is free software, licensed under the GPL.