14. december 2000 - 10:55Der er
1 kommentar og 1 løsning
Opdatering af JTabel
Jeg har en JTabel der er oprettet med to vectorer med sql udtræk. Hvordan får jeg løbende opdateret Jtabellen dem med de nye data der bliver lagt ind i databasen??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skal bruge tabellens TableModel. getModel() returnere en DefaultTableModel (medmindre du eksplicit har fortalt din tabel at den skal bruge en anden model som du selv har lavet). DefaultTabelModel har metoderne addColumn() og addRow() som du kan bruge til at tilføje noget til tabellen. Metoden setDataVector() kan du bruge hvis du vil slette alt det eksisterende i tabellen og indsætte noget nyt.
Måske kan nedenstående være behjælpeligt. Her udskiftes en tabels datamodel med indholdet af et ResultSet (forudsætter at resultatsættet indeholder strenge men den kan modificeres lidt så det gælder mere generelt).
public static void insertIntoTable(JTable table, ResultSet rset) throws SQLException { DefaultTableModel model = (DefaultTableModel)table.getModel();
// Identificer kolonnenavne ResultSetMetaData metadata = rset.getMetaData(); int columns = metadata.getColumnCount(); Vector columnNames = new Vector(); for(int i = 0; i < columns; ++i) columnNames.add(metadata.getColumnLabel(i + 1));
// Identificer rækker (forudsætter at indholdet er tekster) Vector dataRows = new Vector(); while (rset.next()) { Vector rowData = new Vector(columns); for(int i = 0; i < columns; ++i) rowData.add(rset.getString(i + 1)); dataRows.add(rowData); }
// Indsæt kolonnenavne og rækker model.setDataVector(dataRows, columnNames); }
Endnu engang tak for det!! hilsen Xtopolopoketl og Hollywood!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.