LinkedList<Produkte> in eine JTable

cute_hamster

Grünschnabel
Hallo Leute...
also folgendes Problem...
ich hab eine Datenbank mit verschiedenen Produkte und les die alle in eine LinkedList<Produkte>...mein Problem ist jetzt wie bekomm ich die in ein JTable wenn das DefaultTableModel nur Objekte annimmt ...

ich weiß dass ich wohl einen ProduktTableModel extends DefaultTableModel machen muss aber was ich da dann reinschreib weiß ich wirklich nicht :confused: ...
bitte helft mir ^^
 
Moin!
Wenn du ein eigenes TableModel erstellst, welches von DefaultTableModel erbt, musst du einfach nur dessen Methoden deinen Wünschen anpassen, d.h. überschreiben..

Beispielsweise sollen in der Tabelle sicherlich die einzelnen Felder eines Produktes angezeigt werden.. das erreichst du mithilfe des der getValueAt() Methode:
Code:
public Object getValueAt(int row, int column){
     Produkt produkt = produktlist.get(row);
     if(column == 0) return produkt.getName();
     else if(column==1= return produkt.getPreise();
     ...
}

hier wäre noch ein gutes Kapitel über TableModel http://www.galileocomputing.de/open...14_018.htm#mj78dca988552fca476f5ba067a389bf5c


*grüssle*
MeinerEiner
 
und was muss ich machen damit im JTable nicht einzelne Zellen sondern nur die ganze zeile markiert werden kann ? Sie soll aber nicht veränderbar sein sondern der Inhalt an eine ander JTable übergeben werden ? wie mach ich das und danke für die schnelle antwort ^^
 
Moin!
und was muss ich machen damit im JTable nicht einzelne Zellen sondern nur die ganze zeile markiert werden kann ?
table.setRowSelectionAllowed(true);

Sie soll aber nicht veränderbar sein sondern der Inhalt an eine ander JTable übergeben werden ? wie mach ich das und danke für die schnelle antwort ^^

Und wie soll das vonstatten gehen? Falls in der Tabelle editiert werden, und der neue Inhalt dann weitergereicht werden soll, dann..
1. isCellEditable(int row, int column) muss true für die editierbaren zellen zurückliefern
2. Sobald der Editiermodus verlassen wird, wird automatisch die methode setValueAt(int row, int column) aufgerufen. Diese musst du also entsprechend überschreiben.. d.h. den alten Inhalt belassen, den neuen Inhalt an die andere Tabelle weiterreichen..

*gruessle*
MeinerEiner
 
Zurück