JTable中单行的点击事件

table 的属性设置
 private JTable getPreTable() {
  if (preTable == null) {
   preTable = new JTable();
   Object[][] tabledata={};

   DefaultTableModel model=new DefaultTableModel(tabledata,colName){
     public   boolean   isCellEditable(int   row,   int   column)  
      {  
      return   false;  
      };
  
   };   
         preTable = new JTable(model);
      preTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
      preTable.addMouseListener(new MouseAdapter(){
    
    public void mouseClicked(MouseEvent e) {
     
       if(e.getClickCount()==2){//点击几次,这里是双击事件
        tableChanged();        
       }
    }
   });

     
  }
  return preTable;
 }
双击单行的事件:
 public void tableChanged()
 {
  int row=preTable.getSelectedRow();    
  String preId=preTable.getValueAt(row,0).toString();  //得到所在行的第一个列的值,作为下面事件传递的参数
  MedBean mb=new MedBean();//数据操作类中调用
  String id=mb.getMedId(preId); 
 

       TableModel tm=getMedTable().getModel();//另一个表
         DefaultTableModel dtm=(DefaultTableModel)tm;  
   ArrayList<Medicine>list=mb.SelPreMed(id);
   int rowcount=dtm.getRowCount();
         for(int i=rowcount-1;i>=0;i--){//删除以前数据表中的数据
      dtm.removeRow(i);
      }
   for(Medicine m:list){
    Object[] object={m.getMedicineId(),m.getMedicineName(),m.getQuantity(),m.getUnit(),m.getSideEffect()};
    dtm.addRow(object);
   } 
  
 }

你可能感兴趣的:(JTable中单行的点击事件)