Можете ли да ми помогнете да направя този код работещ? Създадох таблица, която променя данните си всеки път, когато се задейства функция. Кодът се състои от три класа.
Модел на маса
public class MyTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private static String[] header = {"A", "B","C", "so on"};
public MyTableModel(){
}
RecordingList data = new RecordingList();
public void addData(RecordingList dataIn) {
data=dataIn;
this.fireTableDataChanged();
}
@Override
public int getColumnCount() {
return header.length; //length;
}
@Override
public int getRowCount() {
return data.size();
}
@Override
public String getColumnName(int col) {
return header[col];
}
@Override
public String getValueAt(int row, int col)
{
Object[] rowSelected = data.getRecordingRow(row);
return rowSelected[col].toString();
}
}
JTable
public class DynamicTable extends JTable implements TableModelListener{
/**
*
*/
MyTableModel model;
private static final long serialVersionUID = 1L;
public DynamicTable() {
model = new MyTableModel();
initialize();
}
void initialize(){
setFillsViewportHeight(true);
setModel(model);
getModel().addTableModelListener(this);
setForeground(Color.BLACK);
setShowGrid(true);
setShowVerticalLines(true);
setBackground(Color.WHITE);
try {
// 1.6+
setAutoCreateRowSorter(true);
} catch(Exception continuewithNoSort) {
}
}
public void tableChanged(TableModelEvent e) {
TableModel newModel = (TableModel)e.getSource();
model=(MyTableModel)newModel;
setModel(model);
// Do something with the data...
}
}
Накрая имплементирах трети клас, който трябва да актуализира таблицата и модела
Това очевидно е наистина ГРЕШЕН подход и го поставям тук, за да ви дам представа какво се опитвам да постигна:
RecordingList recordingList = cr.getResultQuery();
MyTableModel newModel = new MyTableModel();
newModel.addData(recordingList);
TableModelEvent event= new TableModelEvent(newModel);
DynamicTable dt =new DynamicTable() ;
dt.tableChanged(event);