como modificar Jtable

Iniciado por nelmaster_vc, 28 Julio 2016, 01:42 AM

0 Miembros y 2 Visitantes están viendo este tema.

nelmaster_vc

hola yo tengo una lista de cursos donde tiene varios atributos(mas adelante los pongo) y una tabla donde me muestra los estudiantes por cursos y sus notas pero lo q quiero es modificar sus notas cuando lo introduzca en la tabla no se como hacerlo,

estos son los codigos
estos son los atributos de la clase cursos:
Código (java) [Seleccionar]
private String Nombre;
   private int Horas;
   private String Sesion;
   private String Mes;
   private String Profesor;
   private String Categoria;
   private int año;
   private ArrayList<Estudiantes>estud;

y este es mi metodo para añadir a la tabla lo q quiero

public void setInfoNotas(String x) {
 
       DefaultTableModel dtm =new DefaultTableModel();
       dtm.addColumn("Name");
       dtm.addColumn("Notas");
     
       String[]p=new String[2];
       for(int i =0;i<curso.size();i++){
           if(curso.get(i).getNombre().equals(x)){
            for (int j= 0;j<curso.get(i).getEstud().size();j++){  
             
           p[0]= curso.get(i).getEstud().get(j).getNombre();
           p[1]=curso.get(i).getEstud().get(j).getNota()+"";
         
           dtm.addRow(p);
         
       }}}
       jTable3.setModel(dtm);
 
   }


ahora el lio es como modifico las notas y se me guarde en la lista


gracias de antemano




Mod: Los códigos deben ir en etiquetas GeSHi

hectornunezrivas

Hola.
isCellEditable (int fila, int col) Este método permite determinar qué filas y columnas se permite al usuario modificar. Dado que este método devuelve un valor booleano, si todas las celdas se pueden modificar simplemente devuelve un verdadero. Para evitar un JTable de la edición de un valor de columna o fila en particular, devuelve una falsa de este método. El siguiente código permite solamente una columna para mostrar permitiendo al mismo tiempo el resto de las columnas que se desea modificar.

If (col == 1){
return false;
}
else{
return true;
}

public void setValueAt(Object value, int row, int col){
rowData[row][col] = value;
fireTableDataChanged();
}

Bueno esper te sea de ayuda

nelmaster_vc

Hola mmm deja ver si entiendo el metodo isCellEditable me devuelve un valor booleano si es editable la columna. y la segunda me cambia el valor.   Pero tengo un problema lo pongo en netbeans y el 2do metodo me da  error pudieras poner un ejemplo mil gracias por tu ayuda

DIANA KARINA HM

#3
Hola pues un ejemplo que tengo que te podría ayudar seria
Código (java) [Seleccionar]
int n=ps.executeUpdate();
if(n>0)
JOptionPane.showMessageDialog(null, "datos guardados");
}catch(Exception e){
   JOptionPane.showMessageDialog(null, "error"+ e.getMessage());
}
Llenar();
Limpiar();
   }                                          

   private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {                                        
Limpiar();
Habilitar();
       // TODO add your handling code here:
   }
 private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                    
if(evt.getButton()==1){
  try{
      Habilitar();
       int fila=jTable1.getSelectedRow();
       String sql="select * from contactos where id="+jTable1.getValueAt(fila,0);
       sent=Conn.createStatement();
       ResultSet rs=sent.executeQuery(sql);
       rs.next();
       txtNombre.setText(rs.getString("nombre"));
       txtDireccion.setText(rs.getString("direccion"));
       txtTelefono.setText(rs.getString("telefono"));
       txtCorreo.setText(rs.getString("correo"));

}catch(Exception e){
   e.printStackTrace();
}
   }
   }    
   


Mod: Los códigos deben ir en etiquetas GeSHi