Wie machen JTable anzeigen aktualisierten Daten nach der Aktualisierung der Datenbank?

Ich habe aktualisiert eine Datenbank und ich möchte zu aktualisieren, eine JTable mit diesem code gebunden, um eine Schaltfläche click-Ereignis, aber es funktioniert nicht. Wenn ich die Anwendung schließen und wieder öffnen JTable zeigt die richtigen Daten.

Muss ich überschreiben-Methode auf meine Zusammenfassung Tabelle?

try {
        model=new MyTableModel(this.database);
        table = new JTable(model);
    } catch (SQLException e) {

        e.printStackTrace();
    }

scrollPane = new JScrollPane(table);

refresh.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

        ((MyTableModel)table.getModel()).fireTableDataChanged();

    }
});

 class MyTableModel extends AbstractTableModel {
    private int i;
    private String[] columnNames = { "ID", "Code", "Country", "Radio",
            "primljeno", "select" };

    private Object[][] data = { { new Integer(0), "", "", "", "",
            new Boolean(false) } };

    public MyTableModel(My_class_Database database)throws SQLException {
            init(database);


    }
    public void init(My_class_Database database) throws SQLException
    {
        this.i = database.checkIsDataThere();
        Object[][] object;
        if (i == 0) {
            object = new Object[i][7];
            object = database.getDatafromDatabase(this.i);
            this.data = object;
            dataAp = object;

        } else {
            object = database.getDatafromDatabase(this.i);
            textField.setText("No data in database");
        }

    }

    public int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        return data.length;
    }

    public Object getValueAt(int row, int col) {
        return data[row][col];

    }

    public String getColumnName(int col) {
        return columnNames[col];
    }

    public void setValueAt(Object value, int row, int col) {

        data[row][col] = value;
        fireTableCellUpdated(row, col);

    }

    //problem sa null vrijednostima,null exception
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }

    public boolean isCellEditable(int row, int col) {
        if (col > 4) {
            return true;
        } else
            return (false);
    }

}
Eine Möglichkeit ist zum Lesen der Daten aus der Datenbank und erstellen Sie ein neues TableModel. Dann können Sie mit JTable.setModel () - Methode.
Es hat funktioniert,danke!
Schwer zu sagen ohne code. Bitte post wieder ein SSCCE und lassen Sie es uns wissen.
Hinzugefügt my_model Umsetzung

InformationsquelleAutor Programmer Apprentice | 2013-02-25

Schreibe einen Kommentar