Я знаю, что многие люди могут опасаться включения еще одного jar-файла, но, честно говоря, независимо от того, насколько прост JTable (или JList или JComboBox), я всегда использую библиотеку GlazedLists . Откровенно говоря, это одна из самых удивительных библиотек, которые вы когда-либо использовали. Это очень, очень гибкий. Но простой пример состоит из помещения ваших bean-компонентов в специальный список, называемый EventList. Затем создайте формат таблицы; создайте модель, привязав формат к списку данных, а затем установите в качестве модели таблицы.
Предположим, у вас есть класс Person:
public class Person {
private String firstName;
private String surname;
private int age;
... standard constructors, getters and setters...
}
Теперь, чтобы ваша таблица отображала список этих людей:
EventList<Person> peopleEventList = new BasicEventList<Person>();
peopleEventList.add(... create some objects and add it the usual way ...);
...
String[] columnProperties = { "firstName", "surname", "age" };
String[] columnLabels = { "First name", "Surname", "Age" };
TableFormat personTableFormat = GlazedLists.tableFormat(columnProperties, columnLabels);
EventTableModel personTableModel = new EventTableModel(peopleEventList, personTableFormat);
myJTable.setModel(personTableModel);
Я пишу это по памяти, но я думаю, что это более или менее правильно. С этой библиотекой можно легко добавить сортировку и фильтрацию к таблице. Сначала начните работать с базовой таблицей, а затем начните искать на сайте GlazedLists, чтобы узнать, что еще вы можете сделать. Есть несколько действительно хороших скринкастов .
PS Я никоим образом не связан с этой библиотекой, я просто думаю, что она потрясающая!