[ Valerij Zajcev @ 31.01.2010. 13:23 ] @
Opet malo transferujem izmedju .NET-a i Jave :)
U .NET-a sam obicno za prikaz podataka koristio DataGridView i zanjega prikacio neku List-u koja sadrzi podatke, isto pokusavam u javi i to radi ali na malo drugaciji nacin pa me zanima:
1) Da li uvek kada hocu iz neke liste da ubacim podatke u JTable ta lista mora da bude 'Vector' (Kako sam radio dole u kodu), posto sam probao da napravim List, ArrayList... i nece tako da zakaci podatke?
2) U .NET-u ovo radim tako sto kazem
Code:
myDataGrid.DataSource = myListWithData;
da li u Java-i ima neki property koji moze da odradi istu operaciju, ili uvek mora kao sto sam dole uradio?
3) Dodao sam 'Vector' tip i svuda gde ga koristim imam warning:
Citat:
Vector is a raw type. References to generic type Vector<E> should be parameterized
Primer koji sam pratio koristi samo Vector a nikakv Vector Generic?
Code:

Vector row;
        Vector rows = new Vector();
        Vector columnNames = new Vector();
        columnNames.addElement("BookTitle");
        columnNames.addElement("PublisherDirectoryName");
        columnNames.addElement("FullBookLocation");
        columnNames.addElement("BookExtension");
        
        for (BookVO b : booksList)
        {
            row = new Vector();
            row.addElement(b.BookTitle);
            row.addElement(b.PublisherDirectoryName);
            row.addElement(b.FullBookLocation);
            row.addElement(b.BookExtension);
            
            rows.add(row);
        }
        
        JTable table = new JTable(rows, columnNames);
        JScrollPane scrollPane = new JScrollPane(table);
        
        frame.add(scrollPane);
[ del-boy @ 31.01.2010. 14:02 ] @
Da bi izbegao taj warning napravi parametrizovani vektor. U tvom slučaju bi to izledalo ovako:
Code (java):

Vector<String> columnNames = new Vector<String>();
 


Inače, za veću mogućnost manipulacije podacima u JTable koristi TableModel. Ja obično uzmem DefaultTableModel, pa override-ujem šta mi treba, ali možeš i AbstractTableModel da implementiraš.

Verujem da ćeš se snaći u dokumentaciji :)
[ Dejan Lozanovic @ 31.01.2010. 14:46 ] @
JTable kao i ceo swing postuje MVC Pattern , znaci sam table je View , imas Model koji drzi podatke ali generalno mislim da je najbolje da pogledas ceo koncept ovde

http://java.sun.com/docs/books.../uiswing/components/table.html
[ Toxter @ 31.01.2010. 14:53 ] @
JTable samo prikazuje podatke svog TableModel-a.
Znaci, ne mora biti Vector ono sto ce biti tvoj "datasource".
Najtoplije ti preporucujem da implementiras AbstractTableModel (tu ces i videti cemu koja metoda sluzi) i onda kreiraj svoj JTable sa tim modelom.

Pozdrav
[ anebojsa @ 23.09.2011. 07:52 ] @
takodje net programer


JTable table = new JTable(rows, columnNames);
JScrollPane scrollPane = new JScrollPane(table);

frame.add(scrollPane);


mene interesuje iz tvog primera mogu li podatci iz baze da se ubace u neku primer jTable1 koja se vec nalazi na formi (mainPanel)
ne bih zeleo da mi se otvara novi Frame