JTable i mysql

0

Witam wszystkich serdecznie

Mój problem polega na załadowaniu danych z tabeli mysql do JTable - formatka p[isana w swing'u
pytanie 1. Jak załadować dane z tabeli mysql do Jtable
pytanie 2. Jak zainicjowac JTable zeby dynamicznie stwożyć ilość kolum w JTable odpowiadającą ilości
kolumn w tabeli w mysql

Serdecznie pozdrawiam

0

najprostszy sposób to stworzenie tablicy nazw kolumn oraz dwuwymiarowa tablice danych np.

String[] kolumny={"kolumna 1","kolumna 2", "Kolumna 3", ...};
Object[][] dane={{"dana1",new Integer(1), new Boolean(false)},{"dana2",new Integer(5), new Boolean(true)}(...)};
JTable tablica= new JTable(dane,kolumny);

Wystarczy, że przerobisz to na dynamiczne tworzenie kolumn na podstawie informacji w bazie.

0

ja bym jednak proponował poczytać o AbstractTableModel, dużo bardziej elastyczne rozwiązanie. Jest to tak jakby model danych obiektu JTable.
może to wyglądać np tak:

public class FilmyTableModel extends AbstractTableModel{
    private ArrayList<FilmyOUT> filmy;
    Field[] pola;	//pola klasy FilmyOUT
    String[]kolumny = {"Tytuł","Gatunek","Rok Produkcji"};
    Boolean flaga;
    /** Creates a new instance of FilmyTableModel */
    public FilmyTableModel() {
    }
    public FilmyTableModel(ArrayList<FilmyOUT> filmy) {
        super();
        this.filmy=filmy;
        pola = FilmyOUT.class.getDeclaredFields();
       
    }

    public int getRowCount() {
        return filmy.size();
    }

    public int getColumnCount() {
        return pola.length;
       
    }
public String getColumnName(int column){
    
    return kolumny[column];
}
    public Object getValueAt(int rowIndex, int columnIndex) {
        FilmyOUT film = (FilmyOUT)this.filmy.get(rowIndex);
        switch(columnIndex){
            case 0:
                return film.getTytul();
            case 1:
                return film.getGatunek();
            case 2:
                return film.getRok();             
        }
        return null;
    }
    
    public FilmyOUT getFilm(int index) {
                return (FilmyOUT) filmy.get(index);
        }
    
}

i później sobie po prostu robisz

JTable tabelka = new JTable(); 
tabelka.setModel(new FilmyTableMOdel(lista_filmow)); //gdzie lista_filmow jest zainicjowaną przez Ciebie listą obiektów

pzdr

0

Dzieki wielkie za pomoc
Musze przeanalizowc kod i zaimplementowc go na swoim poligonie
W razie problemow bede pisal

Pozdrawiam serdecznie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.