2015-06-13 12 views
5

Nie mogę podać kodu, ponieważ jest to abstrakcyjny problem, przed którym obecnie stoję.Java Swing Wyświetlanie dużych ilości danych z ArrayLists

Pracuję nad programem, który pozwala użytkownikowi śledzić graczy z gier. Program zasadniczo zapisuje informacje o profilu gracza w tablicy ArrayList. Jedną z funkcji mojego programu, którą chciałbym, jest umożliwienie użytkownikowi przeglądania całej listy ArrayList graczy.

Załóżmy, że mam obiekty ArrayList o obiektach Player, a ich rozmiar jest bardzo duży, na przykład 1000. Czy w Javie jest możliwe zezwolenie użytkownikowi na przewijanie ArrayList? Myślałem o stworzeniu 10 JLabels i za każdym razem, gdy użytkownik kliknął przycisk, wykonałby on iterację w ArrayList do następnych 10 Player obiektów. Ale to nie wydaje się praktyczne.

Czy są jakieś funkcje Swing, które mogę wykorzystać dla tego problemu?

Odpowiedz

7

Spróbuj użyć JTable, w którym każdy wiersz tabeli zawiera informacje dla każdego gracza. Możesz rozszerzyć klasę AbstractTableModel, aby zdefiniować pola na gracza i który gracz zostanie wyświetlony w którym rzędzie tabeli.

Napisałem aplikację Java, która używa JTables z więcej niż 2000 wierszy i około 15 do 20 kolumn, i nie ma problemów z wydajnością. Aby ograniczyć wyświetlane wiersze, możesz również użyć RowFilter i możesz dostosować sortowanie za pomocą RowSorter.

+0

Dziękuję za sugestię, będę bardziej zaglądać do JTables. Jeśli ktokolwiek ma już sugestię, jestem dla nich otwarty! –

+4

@RowenMcDaniel: re, '" Popatrzę bardziej na JTables, jeśli ktokolwiek ma już sugestię, jestem dla nich otwarty! "- nie, to * jest * poprawną odpowiedzią. Zaakceptuj tę odpowiedź i rozpocznij kodowanie. Kluczem jest to, że JTable z wykorzystaniem renderowania będzie znacznie bardziej wydajne niż rozwiązanie, które obejmuje tworzenie i wyświetlanie wielu komponentów. –

+0

@HovercraftFullOfEels Dziękujemy za udzielenie odpowiedzi: D. –