then use reflection on the object to get the fields data to be presented in the table
This is the way the Bean Table Model works.
but is there a more efficient way?
Then you need to create a custom model. Check out the JButtonTableModel.java
from the above link. It shows the minimal amount of code you would need to create a custom model.
Both of the above examples extend the functionality of the Row Table Model
which is used to provide the generic Object storage and provide common model functions like add, remove.