Jeden TableModel dla dwóch JTable

0

Witam,

czy istnieje możliwość obsługiwania dwóch JTable przez jeden TableModel?

Mam interfejs z osadzonymi dwiema tabelami. W oparciu o dane w tabelach muszę wykonać obliczenia a ich wynik wyświetlić z powrotem w oknie. Jeżeli miałbym jedną tabelkę, to sprawa prosta bo algorytm liczący wstawiam do TableModel i wszystko działa. Ale kiedy mam dwie tabele z danymi to już nie wiem jak to dobrze poukładać.

Na razie zrobiłem osobne TableModel dla każdej tabeli i dodatkową kasę liczącą. Wszystko jest spięte zdarzeniami i działa. Tylko nie wiem czy nie można tego jakoś prościej zrobić.

Jarek

0

A próbowałeś po prostu utworzyć jeden model i na dodać go do Twoich JTable?

0

Nie próbowałem, ale tabele mają zawierać różne informacje, a nie te same. Więc podpięcie takiego typowego TableModel pod dwie JTable nie załatwia sprawy.

Jarek

1

No to jeżeli tabele mają mieć różne dane to jakim cudem miały by zawierać ten sam model? Przecież to przeczy logice. Mogę co najwyżej zawierać model tego samego typu.

0

Może niejasno opisuję problem. Może w takim razie zapytam czy można dwie tabele obsługiwać jednym "jakimś specjalnie skonstruowanym" TableModel ? Czyli taki TableModel musiałby wiedzieć że zapytanie idzie od JTable1 a nie od JTable2. Czyli w takim TableModel musiałby być dwie tabelice - jedna przechowująca dane od JTable1 i druga od JTable2. Czyli np. metoda setValue(Object o, int col, int row) musiałaby dostawać jeszcze np. dodatkowy parametr mówiący z które JTable pochodzi "o" i do której tablicy trzeba go włażyć.

Jarek

0
TableModel tm1 = new MojTableModel();
TableModel tm2 = new MojTableModel();
JTable tab1 = new JTable(tm1);
JTable tab2 = new JTable(tm2);

Masz dwie tabele obsługiwane jednym typem modelu, ale dwoma różnymi modelami. W inny sposób to za bardzo nie ma sensu tego konstruować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1