2012-08-14 80 views
2

我几乎没有困惑。我正在尝试更新JTable,但更新不会出现。这是我现在的代码:更新JTable

private void addTable(){ 

     table = new JTable();// the table for 'Benchmark' tab 
     table.setShowVerticalLines(false); 
     table.setBorder(null); 

     data = new Object[][] { 
       {"Key", ""},//result[0] 
       {"Precision", ""},//result[2]+" %" 
       {"Cipher", ""},//result[4] 
       {"Language", ""}, 
       {"Performance", ""},//result[3] 
     }; 


     String [] header = new String[] {"Subject of Interest", "Output"}; 
     model = new DefaultTableModel(data, header);   

     table.setModel(model); 


     table.getColumnModel().getColumn(0).setPreferredWidth(136); 
     table.getColumnModel().getColumn(1).setPreferredWidth(550); 
     GroupLayout gl_panelBenchmark = new GroupLayout(panelBenchmark); 
     gl_panelBenchmark.setHorizontalGroup(
       gl_panelBenchmark.createParallelGroup(Alignment.TRAILING) 
       .addComponent(textInfoCrypto, GroupLayout.DEFAULT_SIZE, 759, Short.MAX_VALUE) 
       .addGroup(gl_panelBenchmark.createSequentialGroup() 
         .addGap(10) 
         .addComponent(textPane, GroupLayout.DEFAULT_SIZE, 739, Short.MAX_VALUE) 
         .addGap(10)) 
         .addGroup(Alignment.LEADING, gl_panelBenchmark.createSequentialGroup() 
           .addContainerGap() 
           .addComponent(table, GroupLayout.DEFAULT_SIZE, 739, Short.MAX_VALUE) 
           .addContainerGap()) 
       ); 
     gl_panelBenchmark.setVerticalGroup(
       gl_panelBenchmark.createParallelGroup(Alignment.LEADING) 
       .addGroup(gl_panelBenchmark.createSequentialGroup() 
         .addContainerGap() 
         .addComponent(textInfoCrypto) 
         .addPreferredGap(ComponentPlacement.UNRELATED) 
         .addComponent(textPane, GroupLayout.PREFERRED_SIZE, 41, GroupLayout.PREFERRED_SIZE) 
         .addPreferredGap(ComponentPlacement.UNRELATED) 
         .addComponent(table, GroupLayout.PREFERRED_SIZE, 79, Short.MAX_VALUE) 
         .addContainerGap()) 
       ); 
     panelBenchmark.setLayout(gl_panelBenchmark); 

    } 

这就是我在这个阶段尝试更新单行的方法。下面的代码是从另外的方法调用:

data[0][0]= result[0]; 
model.fireTableCellUpdated(0, 0); 

在这个阶段,我只能看到有行名称的表框,但没有数据。请帮忙吗?

回答

2
  1. 所有fireXxxXxx事件DefaultTableModel正确实施及

  2. 的JTable在这个距离,并根据DefaultTableModel有不更新modelToView的或ViewToModel,有任何问题没有限制,

  3. 必须编辑你的探索与SSCCE

  4. 之前

    阅读JTable tutorial

  5. 尤其JTable and TableModel

+0

我喜欢读它,说实话,但是这是非常紧迫的。我没有时间从头开始学习我遇到的所有问题。 – uml 2012-08-14 12:41:11