У меня есть некоторые данные, которые я должен показать через две JTables;данные одинаковы, но каждая таблица должна показывать это немного по-разному.Кроме того, я получаю данные от внешнего соединения (в данном случае JMS, но это не имеет значения, это может быть БД или что-то в этом роде).
Поскольку я новичок в Swing, явсе еще немного сбит с толку о том, кто должен запускать события, кто должен их слушать и как сделать так, чтобы для модификации моего набора данных у меня были обе таблицы для обновления.
Теперь небольшой пример моегоструктура набора данных, а также некоторые фиктивные данные:
class Student{ String name; Classroom classroom; boolean goodStudent}
class Classroom{ Sting name; List<String> coursesTaught; List<Student> students;}
public List<Classroom> classes;
По сути, мой набор данных будет полем classes
в классе Controller, и двум JTables придется показывать вещи по-разному.А именно, Table1 должен будет показать что-то вроде:
Classroom Name | Courses
4a | CS101, CS102, CS103
4b | BM101, CS102
4c | I101, CS4100
Таким образом, в основном, для каждой Классной комнаты, список курсов.
Table2 должен вместо этого показать вещи как:
Student Name | Good?
Mark Spencer | true
Philippe Mann | true
Tom Sayer | false
Я должен видеть ВСЕХ учеников из всех классных комнат.
Как видите, данные одинаковы, но показаны по-разному.Я хотел бы, чтобы при изменении данных таблицы автоматически обновлялись.Для того, что я понял до сих пор, мне нужно будет создать подкласс AbstractTableModel и создать две разные TableModel для вида данных, которые я хочу показать;я не получаю:
- Как Модели получат свои данные, когда произойдут какие-то изменения?
- Кто должен уведомлять модели об этих изменениях?
- Достаточно ли вызвать функцию «fireTableXXXEvent ()», чтобы вызвать обновление представления?
Надеюсь, я достаточно ясно дал понять ... В любом случае, большое спасибо!Bye