Odnośniki


[ Pobierz całość w formacie PDF ]

korzystać metodę .
Aby użyć w komórkach tabeli edytora listy rozwijalnej, musimy go zainstalować samo-
dzielnie, ponieważ klasa nie może sama ustalić zbioru wartości dla danego typu
komórki. W przypadku komórek kolumny Moons naszej tabeli umożliwimy użytkowni-
kowi wybór wartości z przedziału od 0 do 20. Poniżej fragment kodu inicjujący listę
rozwijalną.
458 Java 2. Techniki zaawansowane
Następnie utworzymy obiekt klasy , przekazując listę jako parametr jego
konstruktora:
Musimy jeszcze zainstalować utworzony edytor. W przeciwieństwie do edytora kolorów
nie zwiążemy go z określonym typem, ponieważ nie chcemy, by używany był przez tabelę
dla wszystkich komórek typu . Zamiast tego zainstalujemy go jedynie dla określo-
nej kolumny tabeli.
Klasa przechowuje informację o kolumnach tabeli, korzystając z obiektów typu
. Klasa zarządza natomiast kolumnami. (Rysunek 6.34 przed-
stawia zależności między najważniejszymi klasami związanymi z tabelami). Jeśli nie pla-
nujemy dynamicznie umieszczać w tabeli nowych kolumn bądz usuwać istniejących, to nie
musimy korzystać z usług modelu kolumn tabeli z wyjątkiem sytuacji, w której chcemy
uzyskać obiekt dla pewnej kolumny:
Rysunek 6.34.
Zależności między
klasami tabel
Dysponując obiektem kolumny, możemy zainstalować edytor jej komórek:
Jeśli chcemy zmienić wysokość komórek tabeli, skorzystamy z poniższej metody.
Domyślnie wszystkie wiersze tabeli posiadają tę samą wysokość. Możemy jednak zmienić
wysokość poszczególnych wierszy, psługując się wywołaniem:
Rzeczywista wysokość komórki pomniejszona będzie o jej margines, który domyślnie wy-
nosi 1. Wielkość marginesu możemy zmienić, używając poniższej metody.

Rozdział 6. Zaawansowane możliwości pakietu Swing 459
Tworzenie własnych edytorów
Jeśli uruchomimy przykładowy program i wybierzemy za pomocą myszy komórkę zawie-
rającą kolor, to otworzy się okno dialogowe wyboru koloru. Użytkownik może wybrać no-
wy kolor i zaakceptować go przyciskiem OK, co spowoduje zmianę koloru komórki tabeli
(patrz rysunek 6.35).
Rysunek 6.35.
Wybór koloru komórki
Edytor koloru komórek nie jest standardowym edytorem tabeli. Aby utworzyć własny
edytor, należy zaimplementować interfejs . Jest to dość pracochłonne za-
danie i dlatego wersja SDK 1.3 wprowadziła klasę zawierającą imple-
mentację obsługi zdarzeń.
Metoda interfejsu pobiera komponent rysu-
jący komórkę tabeli. Jest zdefiniowana tak samo jak metoda
interfejsu z tą różnicą, że nie posiada parametru . Ponieważ
komórka jest edytowana, to automatycznie przyjmuje się, że wartością tego parametru jest
. Komponent edytora zastępuje obiekt rysujący podczas edycji komórki. W naszym
przykładzie wywołanie metody zwraca pusty, niepokolorowany panel, sygnalizując w ten
sposób, że komórka jest edytowana.
Edytor musi rozpocząć swoje działanie po kliknięciu komórki przez użytkownika.
460 Java 2. Techniki zaawansowane
Klasa wywołuje edytor dla danego zdarzenia (na przykład kliknięcia myszą), aby
sprawdzić, czy spowoduje ono rozpoczęcie procesu edycji. Klasa defi-
niuje metodę akceptującą wszystkie zdarzenia.
Jeśli zastąpimy tę metodę, tak by zwracała wartość , to tabela w ogóle nie umieści kom-
ponentu edytora.
Po zainstalowaniu edytora wywoływana jest metoda , prawdopodobnie
dla tego samego zdarzenia. Metoda ta rozpocząć powinna proces edycji, na przykład otwie-
rając okno dialogowe.
Jeśli proces edycji będzie musiał zostać zatrzymany lub przerwany (ponieważ użytkownik wy-
brał inną komórkę tabeli), to wywołana zostanie metoda lub
. Powinniśmy wtedy zamknąć okno dialogowe. Wywołanie metody ozna-
cza, że tabela chce zachować wartość zmodyfikowaną w procesie edycji. Metoda powinna
zwrócić wartość , jeśli wartość komórki jest dozwolona. W przypadku wyboru kolorów do-
zwolona będzie dowolna wartość. Jednak jeśli tworzymy edytor innych rodzajów danych, to [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • brzydula.pev.pl

  • Sitedesign by AltusUmbrae.