Da li imaš klasu koja predstavlja model za tvoje podatke? Ukoliko želiš da proslediš podatke nekom drugom objektu/formi, prosledi model koji si bind-ovao za JTable.
U okviru klase u kojoj proširuješ "extends AbstractTableModel" ili implementiraš "implements TableModel" bi trebalo da imaš referencu i na objekat koji je zapravo model tvojih podataka.
Evo napisao sam primer, trebalo bi da radi. Iz nekog mog starog koda.
Code:
public class Forma extends AbstractTableModel implements TableModel
{
Matrix matrix;
public Forma(Matrix p_matrix)
{
matrix = p_matrix;
}
public Forma(int p_height, int p_width)
{
matrix = new Matrix(p_height, p_width);
}
public Matrix getMatrix()
{
return this.matrix;
}
@Override
public int getColumnCount()
{
return matrix.getWidth();
}
@Override
public int getRowCount()
{
return matrix.getHeight();
}
@Override
public Object getValueAt(int p_row, int p_col)
{
return new Integer(matrix.get(p_row, p_col));
}
public boolean isCellEditable(int row, int col)
{
return true;
}
public void setValueAt(Object p_val, int p_row, int p_col)
{
int val = ((Integer) Integer.parseInt((String) p_val)).intValue();
matrix.set(p_row, p_col, val);
fireTableCellUpdated(p_row, p_col);
}
}
Sada da ne pišem kod i za tabelu ...
Zatim u nekoj klasi instanciras tabelu
class GlavnaForma extends JDialog implements ActionListener, TableModelListener
....
Code:
table = new JTable();
table.setBounds(10, 11, 571, 248);
table.setModel(new Forma(2,2));
table.getModel().addTableModelListener(this);
table.getTableHeader().setVisible(false);
table.setTableHeader(null);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scrollPane = new JScrollPane(table);
panelTable.add(scrollPane, BorderLayout.CENTER);
panelTable.setOpaque(true);