Мы можем получить список объектов из спящего режима. Чтобы показать Объекты в JTable, просто наследуйте класс от AbstractTableModel и предоставьте методы getRowCount (), getColumnCount () и getValueAt (). И метод getColumnName часто необходимо переопределить, чтобы показать нужное имя столбца, а не форму X, Y, Z.
Допустим, у вас есть таблица PERSON в некоторой базе данных и соответствующий ей постоянный класс Person.
Источник PersonTableModel.java:
import org.hibernate.*;
import org.hibernate.cfg.*;
import java.util.*;
import javax.swing.table.AbstractTableModel;
public class PersonTableModel extends AbstractTableModel
{
private static final long serialVersionUID = 6105842825518764825L;
private ArrayList<Person> PersonList;
public PersonTableModel()
{
super();
SessionFactory sf=new Configuration().configure().buildSessionFactory();
Session session=sf.openSession();
Query q=session.createQuery("from Person");
PersonList=new ArrayList<Person>(q.list());
session.close();
sf.close();
}
public int getRowCount()
{
return PersonList.size();
}
public int getColumnCount()
{
return 5;
}
public Object getValueAt(int rowIndex, int columnIndex)
{
Person p=PersonList.get(rowIndex);
Object[] values=new Object[]{p.getId(),p.getFirstname(),p.getLastname(),
p.getAge(),p.getDescription()};
return values[columnIndex];
}
@Override
public String getColumnName(int column)
{
String[] columnNames=new String[]{"id","FirstName","LastName","Age","description"};
return columnNames[column];
}
}
Затем создайте объект PersonTableModel и установите для него модель JTable