2013-02-14 79 views
1

我正在嘗試使用JTable爲了更新Java SWING應用程序中的用戶,當前當我編輯單元格時,編輯的結果只能通過點擊不同的單元格才能獲得, tableModelListener。我希望能夠在按鈕事件上獲取這些更改的值,而無需單擊其他單元格。獲取更新JTable值

我的表定義:

DefaultTableModel tableModel = new DefaultTableModel(); 

table = new JTable(tableModel); 

tableModel.addColumn("Key"); 
tableModel.addColumn("Value"); 

if (PatientView.getSelected() != null){ 
    tableModel.addRow(new Object[]{"Name", PatientView.getSelected().getName()}); 
    tableModel.addRow(new Object[]{"Age", PatientView.getSelected().getAge()}); 
    tableModel.addRow(new Object[]{"Height", PatientView.getSelected().getHeight()}); 
    tableModel.addRow(new Object[]{"Weight", PatientView.getSelected().getWeight()}); 
    tableModel.addRow(new Object[]{"BMI", PatientView.getSelected().getCalculatedBMI()}); 

} 

表監聽

tableModel.addTableModelListener(new TableModelListener(){ 
      @Override 
      public void tableChanged(TableModelEvent arg0) { 
       int row = arg0.getFirstRow(); 
       int column = arg0.getColumn(); 
       Object data = tableModel.getValueAt(0, 1); 
       System.out.println(data); 
      } 
     }); 

按鈕的動作監聽

okButton.addActionListener(new ActionListener() { 
        public void actionPerformed(ActionEvent arg0) { 
         Vector data = tableModel.getDataVector(); 
         System.out.println(table.getValueAt(0, 1)); 
         System.out.println(data); 
        } 
       }); 

回答