2015-04-26 43 views
0

代码是将数据添加到JTable。JTable在第一次执行时不显示结果

  String [] header = new String [] {"No","Customer","Video","Date","Days","Status-Closed"}; 
      Contract [] contractArray = contractList.toArray(new Contract [contractList.size()]); 
      Object [][] datarow = new Object [contractArray.length][6]; 

      try{ 
       //Read the objects from file and store in the List 
       ObjectInputStream inputStream = new ObjectInputStream(
          new FileInputStream("contractfile")); 
       Object o = inputStream.readObject(); 

       while(o != null){ 
        Contract c = (Contract) o; 
        contractList.add(c); 
        o = inputStream.readObject(); 
       } 

      inputStream.close();     

      } catch (EOFException ex) { 
       // 
      } 

      //Push data to the array 
      int no = 0; 
      for(int i = 0; i < contractArray.length; i++){ 
       no++; 
       datarow[i][0] = no; 
       datarow[i][1] = contractArray[i].getAccount().getName(); 
       datarow[i][2] = contractArray[i].getVideo().getName(); 
       datarow[i][3] = contractArray[i].getDate(); 
       datarow[i][4] = contractArray[i].getDay(); 
       datarow[i][5] = contractArray[i].getClosed(); 
      } 

      //set the table model 
      TableModel mod = new DefaultTableModel(datarow,header); 
      table.setModel(mod); 

我第一次单击该按钮,该表只显示标题,单击该数据被放入表中的第二次。调试时,datarow[][]第一次没有元素,第二次有所有的对象。 为什么任何人都可以帮助我?

回答

1

在从文件加载列表之前,请先致电Contract [] contractArray = contractList.toArray(new Contract [contractList.size()]);。所以大小()== 0

datarow = new Object [contractArray.length][6];之后,但在长度为0

+0

噢,我的坏,这样的错误。非常感谢 –

相关问题