[ Pobierz całość w formacie PDF ]
wierającego ją wiersza i kolumny.
Informację o wybranych wierszach i kolumnach możemy uzyskać, wywołując metody
i . Metody te zwracają tablice zawierające indeksy
wybranych wierszy bądz kolumn.
Program, którego kod zródłowy zawiera listing 6.14, umożliwia obserwację sposobu wybo-
ru elementów tabeli. Jego menu umożliwia włączanie lub wyłączanie możliwości wyboru
wierszy, kolumn i komórek tabeli.
Ukrywanie kolumn
Metoda klasy usuwa kolumnę z widoku tabeli. Dane kolumny nie są
usuwane z modelu tabeli, a jedynie ukrywane przed jej widokiem. Parametrem metody
472 Java 2. Techniki zaawansowane
jest obiekt klasy . Jeśli dysponujemy numerem kolumny (na
przykład zwróconym przez metodę ), to musimy najpierw pobrać od
modelu kolumn tabeli odpowiedni obiekt reprezentujący kolumnę:
Jeśli zapamiętamy obiekt kolumny, to możemy pózniej wstawić go z powrotem do tabeli:
Wywołanie tej metody spowoduje dodanie kolumny jako ostatniej kolumny tabeli. Jeśli chcemy
ją umieścić w innym miejscu tabeli, to musimy skorzystać jeszcze z metody .
Nową kolumnę możemy dodać także, tworząc nowy obiekt klasy o indeksie
odpowiadającym numerowi kolumny w modelu.
Możemy utworzyć wiele obiektów tej klasy, które stanowić będą reprezentacje jednej i tej
samej kolumny modelu.
Klasa nie dysponuje metodami, które umożliwiałyby wstawienie lub usunięcie ko-
lumny z modelu. A także metodami, które umożliwiałyby ukrycie wierszy. Jeśli chcemy
ukrywać wiersze tabeli, musimy utworzyć model filtra podobny do pokazanego wcześniej
modelu filtra sortującego.
Dodawanie i usuwanie wierszy w domyślnym modelu tabeli
Klasa jest klasą konkretną implementującą interfejs . Prze-
chowuje ona dwuwymiarową siatkę obiektów. Jeśli posiadamy już dane zorganizowane
w postaci tabelarycznej, to oczywiście nie ma sensu kopiować ich do domyślnego modelu
tabeli. Jego zastosowanie jest jednak bardzo wygodne, jeśli musimy szybko utworzyć ta-
belę reprezentującą niewielki zbiór danych. Klasa dysponuje przy tym
metodami umożliwiającymi dodawanie wierszy oraz kolumn, a także usuwanie wierszy.
Metody i dodają odpowiednio nowy wiersz lub kolumnę. Przekazujemy
im tablicę lub wektor zawierający nowe dane. Metodzie musimy prze-
kazać także nazwę nowej kolumny. Obie metody umieszczają nowe elementy tabeli na
końcu siatki. Aby wstawić wiersz pomiędzy wiersze już istniejące w tabeli, możemy sko-
rzystać z metody . Niestety dla kolumn nie jest dostępna analogiczna metoda.
Metoda usuwa wiersz z modelu tabeli. Również w tym przypadku nie istnieje ta-
ka metoda dla kolumn.
Ponieważ obiekt klasy rejestruje się jako obiekt nasłuchujący modelu tabeli, to wi-
dok tabeli jest powiadamiany za każdym razem, gdy wstawiane są lub usuwane dane z mo-
delu. Umożliwia to aktualizację widoku tabeli.
Rozdział 6. Zaawansowane możliwości pakietu Swing 473
Program, którego kod zródłowy zamieszczamy w listingu 6.14, stanowi ilustrację operacji
wyboru i edycji tabeli. W modelu tabeli umieściliśmy prosty zbiór danych (tabliczkę mno-
żenia). Menu Edit programu umożliwia:
ukrycie wszystkich wybranych kolumn,
przywrócenie wszystkich kolumn, które zostały kiedykolwiek ukryte,
usunięcie wybranych wierszy z tabeli,
dodanie wiersza danych na końcu danych modelu.
Przykład ten kończy omówienie komponentu tabel. Zrozumienie sposobów wykorzystania
tabel jest nieco łatwiejsze niż w przypadku drzew, ponieważ prezentowany za pomocą tabeli
model danych jest prostszy koncepcyjnie. Jednak sama implementacja komponentu tabeli
jest w rzeczywistości bardziej skomplikowana niż w przypadku komponentu drzewa. Przy-
czyniają się do tego możliwości zmiany szerokości kolumn, dodawania własnych obiektów
rysujących i edytorów. W rozdziale tym skoncentrowaliśmy się na zagadnieniach, które po-
siadają największą przydatność w praktyce programisty, a więc prezentacji tabel bazy da-
nych za pomocą komponentu tabeli, sortowaniu tabel oraz wykorzystaniu własnych obiek-
tów rysujących i edytorów. Jeśli potrzebować będziemy informacji dotyczących bardziej
zaawansowanych lub nietypowych zastosowań tabeli, to po raz kolejny wrócimy do książek
Core Java Foundation Classes autorstwa Kim Topley oraz Graphic Java 2 napisanej przez
Davida Geary ego.
Listing 6.14. TableSelectionTest.java
474 Java 2. Techniki zaawansowane
Rozdział 6. Zaawansowane możliwości pakietu Swing 475
476 Java 2. Techniki zaawansowane
Rozdział 6. Zaawansowane możliwości pakietu Swing 477
T
określa tryb zmiany szerokości kolumn.
Parametry: jedna z wartości ,
, ,
, .
zwraca model wyboru, który umożliwia
następnie określenie trybu wyboru.
, jeśli posiada wartość ,
to kliknięcie komórki tabeli powoduje wybranie całego wiersza.
, jeśli posiada wartość ,
to kliknięcie komórki tabeli powoduje wybranie całej kolumny.
, jeśli posiada wartość ,
to możliwy jest wybór poszczególnych komórek tabeli. Taki sam rezultat
daje wywołanie kolejno metod
i .
zwraca wartość , jeśli dozwolony jest
wybór wierszy tabeli.
[ Pobierz całość w formacie PDF ]