De
DefaultTableModel
klasse is een subklasse van de
AbstractTableModel
. Zoals de naam al doet vermoeden, is het het tafelmodel dat wordt gebruikt door een
wanneer er geen tafelmodel specifiek is gedefinieerd door de programmeur. Het DefaultTableModel slaat de gegevens voor de JTable op in een
Vector
van
Vectoren
.
Hoewel de
Vector
is een verouderde Java-verzameling, het wordt nog steeds ondersteund en er is geen probleem met het gebruik ervan, tenzij de extra overhead veroorzaakt door het gebruik van een gesynchroniseerde verzameling een probleem is voor uw Java-toepassing.
Het voordeel van het gebruik van de
DefaultTableModel
over een gewoonte
AbstractTableModel
is dat u de methoden zoals het toevoegen, invoegen of verwijderen van rijen en kolommen niet hoeft te coderen. Ze bestaan al om de gegevens in de
Vector
van
Vectoren.
Dit maakt het een snel en eenvoudig tafelmodel om te implementeren.
Importverklaring
importeer javax.swing.table. DefaultTableModel;
Constructeurs
De
DefaultTableModel
klasse heeft zes
. Elk kan worden gebruikt om de
DefaultTableModel
op verschillende manieren.
De eerste constructor accepteert geen argumenten en maakt een
DefaultTableModel
die geen gegevens, nul kolommen en nul rijen heeft:
DefaultTableModel defTableModel = DefaultTableModel ();
De volgende constructor kan worden gebruikt om het aantal rijen en kolommen van een te specificeren
DefaultTableModel
zonder gegevens:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
Er zijn twee constructors die kunnen worden gebruikt om een
DefaultTableModel
met kolomnamen en een opgegeven aantal rijen (allemaal met nulwaarden). Men gebruikt een
Voorwerp
array om de kolomnamen te bevatten, de andere een
Vector
:
of
DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);
Ten slotte zijn er twee constructeurs gebruikt om de
DefaultTableModel
met rijgegevens samen met kolomnamen. Een gebruikt
Voorwerp
arrays, de andere
Vectoren
:
of
Handige methoden
Om een rij toe te voegen aan de
DefaultTableModel
gebruik de
Voeg een rij toe
methode samen met de rijgegevens om toe te voegen:
Gebruik de om een rij in te voegen
insertRow
methode, met specificatie van de in te voegen rijindex en de rijgegevens:
Gebruik de om een rij te verwijderen
removeRow
methode, met specificatie van de te wissen rij-index:
defTableModel.removeRow (0);
Gebruik de om een waarde in een tabelcel te krijgen
getValueAt
methode. Als de gegevens in rij 2 bijvoorbeeld bevatten, bevat kolom 2 een int:
int waarde = tabModel.getValueAt (2, 2);
Om een waarde in te stellen in een tabelcel
setValueAt
methode met de waarde die samen met de rij- en kolomindex moet worden ingesteld:
defTableModel.setValueAt (8888, 3, 2);
Gebruikstips
Als een
JTable
wordt gemaakt met de constructor die wordt doorgegeven aan een tweedimensionale array met de rijgegevens en een array met de kolomnamen:
dan werkt de volgende cast niet:
Een looptijd
ClassCastException
zal worden gegooid omdat in dit geval de
DefaultTableModel
wordt verklaard als een
in de
JTable
object en kan niet worden gegoten. Het kan alleen naar de
Tafelmodel
koppel. Een manier om dit te omzeilen is om er zelf een te maken
DefaultTableModel
en stel het in als het model van de
JTable
:
Dan de
DefaultTableModel
defTableModel
kan worden gebruikt om de gegevens in de
JTable
.
Om de... te zien
DefaultTableModel
in actie kijk eens naar de
.