"Kristian Erbou" <k_erbou@worldonline.dk> wrote in message
news:Q7yO6.425$Fn3.44356@news010.worldonline.dk...
> OK - here goes:
>
> Jeg sidder p.t. med en JScrollPane, der indeholder en JTable. Denne JTable
> skal fyldes op med nye data alt afhængig af et tal, jeg indtaster - dvs.
>
> Nuvel - det virker fint, jeg kan godt hente dataene fra databasen, men jeg
> kan ikke få opdateret min JTable. Jeg har kigget på TableModelListener,
men
> det virker ikke rigtigt efter hensigten, så mit spørgsmål lyder: Hvilken
> metode opdaterer en JTable? Og skal det gøres på JTablen eller på min
> JTableModel? Jeg går stærkt ud fra, at det er på modellen, men lige nu er
> jeg sgu lidt rådvild.
Din JTable har tilknyttet en JTableModel. Enten DefaultTableModel, eller
(som oftest) din egen klasse, som (typisk) nedarver fra AbstractTableModel.
(DefaultTableModel nedarver fra AbstractTableModel.) (Du kan dog også lave
din helt egen klasse som implementerer TableModel interfacet, men det har
jeg endnu ikke set noget behov for.)
Når du har hentet nye data fra databasen og gerne vil have tabellen
gentegnet skal du benytte metoderne fireTableXXX hvor XXX er en af
CellUpdated, Changed, ... (der er ialt 7). Vælg den der passer til dit
behov. Hvis det er alle rækkerne der er ændret, så lyder det som om du skal
benytte fireTableDataChanged.
Disse metoder er offentlige og erklæret i AbstractTableModel. De fyrer et
event af som alle TableModelListeners der er tilknyttet AbstractTableModel
modtager. En af disse listeners er JTable som implementerer dette
TableModelListener interface. Og voila, JTable gentegner sig selv.
Venlig hilsen,
Steffen Enni
http://www.zachosw.dk