JTable+wyniki SQL + hibernate

0

Witam,
Mam mały problem, chciałbym wyświetlać wyniki zapytań SQL w JTable. Jednak nie bardo mi to wychodzi.
Poniżej wklejam fragment kodu którym pobieram dane bazy.

  List<Klient> klienci = this.wypiszKlientow();
            for (Klient klient : klienci) {
                ile++; //licnik zliczający ilość rekordów w bazie
               
                System.out.println("Klient nr " + klient.getId() + ", imie: " + klient.getImie() + ", nazwisko= " + klient.getNazwisko());
            }

Dodam, że kiedyś pisząc kod w notatniku robiłem coś takiego, ale w Netbeansie coś nie bardzo mi wychodzi.

Z góry dzięki za odpowiedzi.

0

Nie widac nic co mialoby cokolwiek wspolnego z JTable.
Nie musisz iterowac po liscie klientow aby zliczyc ile ich jest - uzyj metody List.size().

0

Więc po dłuższej chwili zastanowienia wymyśliłem takie rozwiązanie. Oczywiście działa ale czy jest to poprawne rozwiązanie?? Proszę o komentarz :)

List<Klient> klienci = this.wypiszKlientow();
        String columns[]={"Id","Imie","Nazwisko"};
        javax.swing.table.DefaultTableModel tModel = new javax.swing.table.DefaultTableModel(columns,klienci.size());
        jTable1.setModel(tModel);
        jPanel2.setVisible(true);
        
            for (Klient klient : klienci) {
               ile++;
               
                jTable1.setValueAt(klient.getId(), ile, 0);
                jTable1.setValueAt(klient.getImie(), ile, 1);
                jTable1.setValueAt(klient.getNazwisko(), ile, 2);
               
            }
            
           
            
    }                                          
0

No wyglada dobrze pierwsza czesc, to z modelem. Natomiast petli for nie rozumiem: ani po co ona jest, ani co ma robic. Wywal to.

0

no przecież jakoś muszę uzupełnić wiersze i kolumny JTable danymi z bazy danych. A "jedynym" (znanym mi) rozwiązaniem jest pętla chyba?? Do listy klienci za pomocą wcześniej zdefiniowanej metody wypiszKlientow() wczytuje te dane i później poruszając się po tej pętli wczytuje ich do tabeli JTable.

No chyba że jest prostsze rozwiązanie :)??

0

Wy;elnianiem tabeli zajmuje sie jej model. Nie uzywa sie metody setValueAt w ten sposob, ona jest automatycznie wolana przez JTable jak chcesz edytowac.
Wykorzystaj ktorys z konstruktorow DefaultTableModel, ktory bierze dane, i jak ustawisz ten model tabelce, juz nic wiecej nie musisz robic. Takie cuda. Ewentualnie mozesz nadpisac metode getColumnClass() aby jawnie powiedziec jaki typ ma dana kolumna - domyslnie, z AbstractTableModel, jest Object. Jesli nadpiszesz ze np kolumna wiec jest Integer, to tabela moze wyswietlic to pole jako spinner, np. Albo, jak masz w rekordzie wartosc typu boolean i tabela bedzie o tym wiedziec (wlasnie przez nadpisanie getColumnClass) zamiast tekstow true/false bedzie pokazany checkbox.

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