Hello
 
I tried in a Tablemodel to add a row. I have changed my data array and then i called the fireTableRowsInserted-Method and nothing happens. When i resize the ULCFrame then the line is visible. After this i tried fireTableChanged and this works also fine. What is the problem?
 
Here is the code of my model
 
 private String[] _columnNames = { "Name", "ident", "Empl. Name", "OID", "lastChangeUser"};
 
 private List _rows = new ArrayList();
 private List _oid = new ArrayList();
 private List _user = new ArrayList();
 
 public void reload(List lst){
  _rows.clear();
  _oid.clear();
  _user.clear();
  for (int r = 0; r < lst.size(); r ++) {
   User user = (User) lst.get(r);
   fillRowElement(user);
  }
  fireTableDataChanged();
 }
 
 public OID getOid(int row){
  return (OID)_oid.get(row);
 }
 
 public User getUser(int row){
  return (User)_user.get(row);
 }
 
 public void addUser(User user){
  fillRowElement(user);
  //bug in ULC
//  fireTableRowsInserted(getRowCount(), getRowCount());
  fireTableDataChanged();
 }
 
 private void fillRowElement(User user){
  String[] row = new String[getColumnCount()];
  row[0] = user.getName();
  row[1] = user.getParentEmployee().getIdentification();
  row[2] = user.getParentEmployee().getPerson().getName();
  row[3] = user.getOid().toString();
  row[4] = ""; //user.getHistory().getLastChangeUser().getName();
  _rows.add(row);
  _user.add(user);
  _oid.add(user.getOid());
 }
 
 public void removeUser(int row){
  _rows.remove(row);
  _oid.remove(row);
  _user.remove(row);
  fireTableRowsDeleted(getRowCount(), getRowCount());
 }
 
 public void updateUser(User user, int row){
  _oid.set(row, user.getOid());
  _user.set(row, user);
  String[] rowe = (String[])_rows.get(row);
  rowe[0] = user.getName();
  rowe[1] = user.getParentEmployee().getIdentification();
  rowe[2] = user.getParentEmployee().getPerson().getName();
  rowe[3] = user.getOid().toString();
  rowe[4] = ""; //user.getHistory().getLastChangeUser().getName();
  _rows.set(row, rowe);
  fireTableRowsUpdated(row, row);
 }
 
 public Object getValueAt(int row, int column) {
  return ((String[])_rows.get(row))[column];
 }
 
 public int getColumnCount() {
  return _columnNames.length;
 }
 
 public int getRowCount() {
  return _rows.size();
 }
 
 public String getColumnName(int column) {
  return _columnNames[column];
 }
 
 public boolean isCellEditable(int rowIndex, int columnIndex) {
  if (columnIndex == 2){
   //for date format
   return true;
  }
  return true;
  
 }
 
 public void setValueAt(Object value, int row, int column) {
//  if (column == 0){
//   ((User)modelItems.get(row)).getName();
//  }
//  if (column == 1){
//   ((User)modelItems.get(row)).getParentEmployee().getIdentification();
//  }
//  if (column == 2){
//   ((String[])_rows.get(row))[column] = value.toString();
//  }
//  if (column == 3){
//   ((User)modelItems.get(row)).getOid().toString();
//  }
//  ((String[])_rows.get(row))[column] = value.toString();
//  System.out.println("Modelrow: " +  row);
  System.out.println("Value: " + value);
  System.out.println("ValueClass: " + value.getClass().getName());
 }
 
 public Class getColumnClass(int columnIndex) {
//  if (columnIndex == 2){
//   return Date.class;
//  }
  return String.class;
 } 
 

Torsten Hofmann
Dipl. - Informatiker (FH)
IT Consultant Business Integration
 
Würth Phoenix GmbH
Drillberg 6
D-97980 Bad Mergentheim

(Phone: +49 7931 91 6284
7 Fax: +49 7931 91 7284
+E-Mail: torsten.hofmann@wuerth-phoenix.de
 
    Website: www.wuerth-phoenix.de

 

Reply via email to