Foro de elhacker.net

Programación => Java => Mensaje iniciado por: nelmaster_vc en 28 Julio 2016, 01:42 am



Título: como modificar Jtable
Publicado por: nelmaster_vc en 28 Julio 2016, 01:42 am
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
  1. private String Nombre;
  2.    private int Horas;
  3.    private String Sesion;
  4.    private String Mes;
  5.    private String Profesor;
  6.    private String Categoria;
  7.    private int año;
  8.    private ArrayList<Estudiantes>estud;
  9.  
  10. y este es mi metodo para añadir a la tabla lo q quiero
  11.  
  12. public void setInfoNotas(String x) {
  13.  
  14.        DefaultTableModel dtm =new DefaultTableModel();
  15.        dtm.addColumn("Name");
  16.        dtm.addColumn("Notas");
  17.  
  18.        String[]p=new String[2];
  19.        for(int i =0;i<curso.size();i++){
  20.            if(curso.get(i).getNombre().equals(x)){
  21.             for (int j= 0;j<curso.get(i).getEstud().size();j++){  
  22.  
  23.            p[0]= curso.get(i).getEstud().get(j).getNombre();
  24.            p[1]=curso.get(i).getEstud().get(j).getNota()+"";
  25.  
  26.            dtm.addRow(p);
  27.  
  28.        }}}
  29.        jTable3.setModel(dtm);
  30.  
  31.    }

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


Título: Re: como modificar Jtable
Publicado por: hectornunezrivas en 31 Julio 2016, 16:44 pm
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.
Código:
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


Título: Re: como modificar Jtable
Publicado por: nelmaster_vc en 5 Agosto 2016, 01:09 am
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


Título: Re: como modificar Jtable
Publicado por: DIANA KARINA HM en 5 Agosto 2016, 06:28 am
Hola pues un ejemplo que tengo que te podría ayudar seria
Código
  1. int n=ps.executeUpdate();
  2. if(n>0)
  3. JOptionPane.showMessageDialog(null, "datos guardados");
  4. }catch(Exception e){
  5.    JOptionPane.showMessageDialog(null, "error"+ e.getMessage());
  6. }
  7. Llenar();
  8. Limpiar();
  9.    }                                          
  10.  
  11.    private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {                                        
  12. Limpiar();
  13. Habilitar();
  14.        // TODO add your handling code here:
  15.    }
  16.  private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                    
  17. if(evt.getButton()==1){
  18.   try{
  19.       Habilitar();
  20.        int fila=jTable1.getSelectedRow();
  21.        String sql="select * from contactos where id="+jTable1.getValueAt(fila,0);
  22.        sent=Conn.createStatement();
  23.        ResultSet rs=sent.executeQuery(sql);
  24.        rs.next();
  25.        txtNombre.setText(rs.getString("nombre"));
  26.        txtDireccion.setText(rs.getString("direccion"));
  27.        txtTelefono.setText(rs.getString("telefono"));
  28.        txtCorreo.setText(rs.getString("correo"));
  29.  
  30. }catch(Exception e){
  31.    e.printStackTrace();
  32. }
  33.    }
  34.    }    
   


Mod: Los códigos deben ir en etiquetas GeSHi