renderujący może wyglądać fabryki powrocie komponentów do komórek, ale w rzeczywistości wynika z muszej renderingu podejścia i wykorzystuje tę samą składnik ten do renderowania wszystkich komórek (każde wywołanie getListCellRendererComponent()
ma przekonfigurować to samo wystąpienie komponentu dla konkretnej komórki i zwróć ją, aby umożliwić renderowanie komórki).
W ten sposób można uzyskać JList
(jak również JTable
i JTree
) wyświetlać ogromną ilość komórek bez konieczności wprowadzania składników dla każdej komórki. Jako efekt uboczny komponent renderowania nie może reagować na zdarzenia, ponieważ jest używany tylko w pętli renderowania, ale nie pojawia się w drzewie komponentów.
Tak jak powiedział Neil Coffey, można dodać słuchaczy do JList
(JTable
, JTree
) zamiast, i korzystać z metod pomocniczych (locationToIndex(...)
, getCellBounds(...)
) wysyłkę, która komórka została dotknięta, a więc do czynienia ze specyficzną logikę komórkowej.
Bardzo dobre pytanie. Myślałem, że może to mieć coś wspólnego z ItemListeners, ale teraz nie sądzę ... Próbowałem znaleźć przykładowy kod, ale nie udało mu się. – Uri
Witam, stoję wobec tego samego problemu, czy jesteś w stanie rozwiązać problem? – user236501