Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/05/2013, 13:40
Kushina
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Obtener Id de celda en Jtable

Gracias por la pronta respuesta a ambos!!!


@chuidiang

Entiendo lo que dijiste y asi fue como lo relacione como si manejara un ComboBox y no tengo problemas con el nombre del pais en la celda el toString en la clase Paises esta bien...

ahora @cazador1992

me entendiste perfecto, asi era mi consulta y la tabla quedaba algo como

CodProvincia =1
nomProvincia = Córdoba
codPais = 1

Donde 1 corresponde al pais Argentina y me funcionaba perfecto PERO establecimos con mi profesor (estoy haciendo la tesis de mi carrera) que estaba mejor que la tabla no mostrara el codigo sino directamente el nombre del Pais, y el tenia razon... pero... NECESITO ESE CODIGO jaja para poder llenar mi combo paises en el jDialog siguiente y realizar la modificacion.

Sino la otra solucion que pensaba era la de ocultar la columna idPais,

Código:
table.removeColumn(ListadoTable.getColumnModel().getColumn(1));
pero si la oculto, mi boton Modificar no toma el dato (idPais) para enviarlo al JDialog..... y es como si le enviara algo vacio.


les ajunto el codigo de mi boton Modificar.


Código:
 private void btnModifActionPerformed(java.awt.event.ActionEvent evt) {                                         
       
        System.out.println(tablePro.getSelectedRow());
       if(tablePro.getSelectedRow()!=-1) //Esto me permite saber si se selecciono o no una fila.
       {
           
          
           //Abre jDialog 
            ModifProvincias modpro = new ModifProvincias(this,true);
          
          
           
           //Paso a la siguiente pantalla los datos de la provincia seleccionada;
           int codigo =Integer.valueOf(tablePro.getValueAt(tablePro.getSelectedRow(), 0).toString());
           String pro = tablePro.getValueAt(tablePro.getSelectedRow(), 1).toString();           
           //int codPais = Integer.valueOf(tablePro.getValueAt(tablePro.getSelectedRow(), 2).toString());
           
          
           //Este es el error
           Paises p = (Paises) tablePro.getValueAt(tablePro.getSelectedRow(), 2); 
           int codPais =  p.getIdPais();
          
           
           
           modpro.getProvSeleccionada(codigo, pro, codPais);
           //Muestro la pantalla 
           modpro.setVisible(true);
                habilitarBotones(true);
           tablePro.setVisible(false);
           //ActualizarTablaModif();
            }
       else
       {  JOptionPane.showMessageDialog(this, "Debe seleccionar una provincia de la tabla para realizar la operacion");  }
    
    }
y mi JDialog que recibe estos datos

Código:
public class ModifProvincias extends javax.swing.JDialog {

    private Conexion conexion;
    private int codSeleccion;
    private int codPaisSeleccion;
    private String nomSeleccion;
    
    public ModifProvincias(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        cargarComboPais();
        
         Conexion.getInstance().abrirConexion();
        
      
    }

    public void getProvSeleccionada(int c,String n, int cp)
    { 
      codSeleccion=c;
      nomSeleccion=n;
      codPaisSeleccion = cp;
      habilitarEdicion();
     
      System.out.println("codi" + codSeleccion + "provincia:" + nomSeleccion + "Pais: "+ codPaisSeleccion);

    }
    public void habilitarEdicion()
    {  
        
         setValorSeleccionadoCombo(cboPais, codPaisSeleccion);
         
       
         txtCod.setText(String.valueOf(codSeleccion));
         txtPro.setText(nomSeleccion);
        
      
    }

   
    
    private void setValorSeleccionadoCombo(JComboBox jCombo, int cod) {
   for (int i = 0; i < jCombo.getItemCount(); i++) {
    Paises item = (Paises) jCombo.getItemAt(i);
   if (item.getIdPais()== cod)
   {
    cboPais.setSelectedItem(item);
      }
   }

}
Nuevamente muchas gracias y disculpen si el nombre de las variables los lía un poco...