public KSVTableModel(Vector<Integer> talListe) { data = new Object[talListe.size()][columnNames.length] for (int position=0;position< talListe.length;position++) { int antal=Statistik.AntalKunderMedKSV(ksver); data[position][0] = new Integer(position+1); data[position][1]= talListe.get(position); } }
public int getRowCount() {
return data.length; }
public int getColumnCount() {
return columnNames.length; }
public String getColumnName(int col) { return columnNames[col]; }
public Object getValueAt(int row, int col) { return data[row][col]; }
@SuppressWarnings("unchecked") public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); }
public boolean isCellEditable(int row, int col) { //Note that the data/cell address is constant, //no matter where the cell appears onscreen.
Jeg har en: ((javax.swing.table.DefaultTableModel)table1.getModel()).setDataVector(vector, ???)
De tre ? er fordi jeg ikke ved, hvorledes/hvad columnIdentifiers er, hvorledes jeg finder det frem osv.
Jeg vil blot have min JTable fyldt ud med rækker indeholdene Objecter (som har en toString-funktion) fra min Vector. Så jeg kan bruge getSelectedRow på min JTable og derefter caste den som mit Object, som jeg så kan benytte.
public static void main(String[] arg) { Test m = new Test(); m.setVisible(true); m.setSize(new Dimension(600, 300)); m.validate(); } }
class TableModel extends AbstractTableModel { public static final int ID_COL = 0; public static final int Firstname_COL = 1; public static final int Surname_COL = 2;
public String[] m_colNames = { "ID", "Firstname", "Surname" }; public Class[] m_colTypes = { Integer.class, String.class, String.class };
private Vector dataVector;
public TableModel(Vector dataVector) { super(); this.dataVector = dataVector; }
public int getColumnCount() { return m_colNames.length; }
public int getRowCount() { return dataVector.size(); }
public void setValueAt(Object value, int row, int col) {
Bruger bruger = (Bruger)(dataVector.elementAt(row)); JOptionPane.showMessageDialog(null,"Old values: "+bruger.toString(),"Message",JOptionPane.PLAIN_MESSAGE); switch (col) { case ID_COL: bruger.setID((Integer)value); break; case Firstname_COL: bruger.setFirstname((String)value); break; case Surname_COL: bruger.setSurname((String)value); break; } JOptionPane.showMessageDialog(null,"New values: "+bruger.toString(),"Message",JOptionPane.PLAIN_MESSAGE); }
public boolean isCellEditable(int row, int col) { switch (col) { case 0: //ID return false; case 1: //Firstname return true; case 2: //Surname return true; default: return false; } }
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) { Bruger bruger = (Bruger)(dataVector.elementAt(row)); switch (col) { case ID_COL: return bruger.getID(); case Firstname_COL: return bruger.getFirstname(); case Surname_COL: return bruger.getSurname(); } return null; } }
class Bruger { private Integer id; private String firstname; private String surname;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.