Java Reference
In-Depth Information
jTableNoten.setModel(jTableNotenModel);
jTableNoten.getSelectionModel().addListSelectionListener(this);
}
Listing 15.10
Erstellung der JTable mit dem TableModel
Das abgeleitete
MyDefaultTableModel
mit dem ersten Datensatz und den Spaltennamen
wird initialisiert. Außerdem wird für das TableModel der
TableModelListener
registriert.
Für die Tabelle selbst wird außerdem ein
ListSelectionListener
registriert. Damit sind
die Voraussetzungen geschaffen, auf Änderungen der Tabellendaten und auf das Mar-
kieren von Tabellenzeilen zu reagieren. Zur Vervollständigung fehlen nur noch drei
kleine Methoden:
private void jBtnNeuActionPerformed(ActionEvent evt) {
try {
String t=jTFPruefungsart.getText();
intw=Integer.parseInt(jTFWichtung.getText());
doublen=Double.parseDouble(jTFNote.getText());
MyDefaultTableModel m =
(MyDefaultTableModel)jTableNoten.getModel();
m.addRow(new Object[]{t,new Integer(w),new Double(n)});
} catch (Exception e) {
e.printStackTrace();
}
}
Listing 15.11
Methode zum Hinzufügen einer neuen Note
public void tableChanged(TableModelEvent e) {
MyDefaultTableModel m = (MyDefaultTableModel) jTableNoten.getModel();
double schnitt = m.getNotengewichtet() / m.getGewichtung();
jLNotenschnitt.setText("Notenschnitt:"+df.format(schnitt));
jLSelectedNotenschnitt.setText("");
}
Listing 15.12
Methode als Reaktion auf eine Datenänderung
public void valueChanged(ListSelectionEvent arg0) {
int[] rows=jTableNoten.getSelectedRows();
if (rows.length > 0) {
MyDefaultTableModel m = (MyDefaultTableModel) jTableNoten.getModel();