2013-02-14 2 views
1

자바 스윙 응용 프로그램에서 사용자를 업데이트하기 위해 JTable을 사용하려고합니다. 현재 셀을 편집 할 때 다른 셀을 클릭하여 편집 결과를 얻을 수 있습니다. 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); 
        } 
       }); 

답변