We would like to know how to extend AbstractTableModel to use user Object.
/* w ww .j a v a 2s . com*/ import java.awt.Dimension; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; public class Main extends JFrame { private JTable m_simpleTable; private SimpleTableModel m_simpleTableModel; public Main() { Vector dummyMacData = new Vector(10, 10); dummyMacData.addElement(new Data(new Integer(100), "A", "1","C", "E")); dummyMacData.addElement(new Data(new Integer(105), "R", "2","S", "E")); m_simpleTableModel = new SimpleTableModel(dummyMacData); m_simpleTable = new JTable(m_simpleTableModel); JScrollPane scrollPane = new JScrollPane(m_simpleTable); getContentPane().add(scrollPane); } public static void main(String[] arg) { Main m = new Main(); m.setVisible(true); m.setSize(new Dimension(600, 300)); m.validate(); } class SimpleTableModel extends AbstractTableModel { public String[] m_colNames = { "A", "B", "C","D", "E" }; public Class[] m_colTypes = { Integer.class, String.class, String.class, String.class, String.class }; Vector m_macDataVector; public SimpleTableModel(Vector macDataVector) { super(); m_macDataVector = macDataVector; } public int getColumnCount() { return m_colNames.length; } public int getRowCount() { return m_macDataVector.size(); } public void setValueAt(Object value, int row, int col) { Data macData = (Data) (m_macDataVector.elementAt(row)); switch (col) { case 0: macData.setA((Integer) value); break; case 1: macData.setB((String) value); break; case 2: macData.setC((String) value); break; case 3: macData.setD((String) value); break; case 4: macData.setE((String) value); break; } } public String getColumnName(int col) { return m_colNames[col]; } public Class getColumnClass(int col) { return m_colTypes[col]; } public Object getValueAt(int row, int col) { Data macData = (Data) (m_macDataVector.elementAt(row)); switch (col) { case 0: return macData.getA(); case 1: return macData.getB(); case 2: return macData.getC(); case 3: return macData.getD(); case 4: return macData.getE(); } return new String(); } } } class Data { private Integer a; private String b; private String c; private String d; private String e; public Data() { } public Data(Integer aa, String bb, String cc, String dd, String ee) { a = aa; b = bb; c = cc; d = dd; e = ee; } public Integer getA() { return a; } public String getB() { return b; } public String getC() { return c; } public String getD() { return d; } public String getE() { return e; } public void setA(Integer aa) { a = aa; } public void setB(String macName) { b = macName; } public void setC(String cc) { c = cc; } public void setD(String dd) { d = dd; } public void setE(String ee) { e = ee; } }