Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/12/2012, 20:48
Abbathorn
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Desde fila de JTable a JTextField

Buenas noches

Tengo un JTable con varios datos que me jalo de una base de datos en SQL Server y necesito que al hacer click en una fila del JTable, los datos de esta fila se me pasen a los JTextField, he trato ya con varias cosas y aun no he podido hacer que funcione ni he podido entender bien la funcionalidad del JTable y los modelos de tablas.

Me podrian aventar una mano?

Mi código es el siguiente:

Código:
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.table.*;

public class Cliente extends JFrame implements ActionListener
{
	String dsn = "dsnParqueadero"; //Define el string de Conexión
           
	JPanel jpFormulario = new JPanel();
	
	JTable tblC = new JTable();
			
	JLabel lbldocumento = new JLabel("Documento:");
	JLabel lblNombres = new JLabel("Nombres:");
 	JLabel lblApellidos = new JLabel("Apellidos:");    	
 	JLabel lblTelefono = new JLabel("Teléfono:");    	

 	JTextField txtDocumento = new JTextField(15);
 	JTextField txtNombres = new JTextField(15);
 	JTextField txtApellidos = new JTextField(15);    	    	
 	JTextField txtTelefono = new JTextField(10);

	JButton btnGuardar = new JButton("Guardar");
	JButton btnLimpiar = new JButton("Limpiar");
	JButton btnBuscar = new JButton("Buscar");
	
    public static void main(String[] args) 
    {
        new Cliente();
    }
    
    public Cliente()
	{
		//Instancia la ventana
		super("Cliente"); 
		this.setSize(400,300);
		this.setResizable(false);
			
		//Contenedor de los elementos de la ventana
    	jpFormulario.setLayout(null);    	
			
		//Define el string de conexión    	
    	BaseDatos.strDSNUsuarioConexion(dsn);
    	
    	addWindowListener(new WindowAdapter()
    	{
    		public void windowClosing(WindowEvent e)
    		{
    			dispose();
    			System.exit(0);
    		}
    	});
		
		/*formulario*/
		//Agregar los elementos de la ventana
		
		lbldocumento.setBounds(10,10,150,20);
    	jpFormulario.add(lbldocumento);
    	
    	txtDocumento.setBounds(90,10,190,20);
    	jpFormulario.add(txtDocumento);
    	    	
    	btnBuscar.setBounds(290,10,90,20);
    	btnBuscar.setToolTipText("Buscar con el dato digitado.");
    	jpFormulario.add(btnBuscar);
    	
		lblNombres.setBounds(10,40,150,20);
    	jpFormulario.add(lblNombres);
    	
    	txtNombres.setBounds(90,40,190,20);
    	jpFormulario.add(txtNombres);
    	
    	lblApellidos.setBounds(10,70,150,20);
    	jpFormulario.add(lblApellidos);
    	
    	txtApellidos.setBounds(90,70,190,20);
    	jpFormulario.add(txtApellidos);
    	
    	lblTelefono.setBounds(10,100,150,20);
    	jpFormulario.add(lblTelefono);
    	
    	txtTelefono.setBounds(90,100,190,20);
    	jpFormulario.add(txtTelefono);
    	    	
    	btnLimpiar.setBounds(100,130,90,20);
    	btnLimpiar.setToolTipText("Limpiar los campos.");
    	jpFormulario.add(btnLimpiar);
    	
    	btnGuardar.setBounds(200,130,90,20);
    	btnGuardar.setToolTipText("Guardar los datos digitados.");
    	jpFormulario.add(btnGuardar); 
  	 		
		LlenarGrid();
		
		tblC.addMouseListener(new MouseAdapter() 
   		{
      		public void mouseClicked(MouseEvent e) 
      		{
         		int row = tblC.rowAtPoint(e.getPoint());

				/* row devolvera -1 si se ha clicado fuera de la fila pero dentro de la tabla, si no devolvera el indice de la fila en la que se ha clicado. */

				txtDocumento.setText(tblC.getValueAt(row, 0).toString());
   				txtNombres.setText(tblC.getValueAt(row, 0).toString());
   				txtApellidos.setText(tblC.getValueAt(row, 0).toString());
   				txtTelefono.setText(tblC.getValueAt(row, 0).toString());
      		}
   		});
		
		getContentPane().add(jpFormulario);
				
		//Agregar los elementos de la ventana
				
		btnGuardar.setActionCommand("Guardar"); //Define el comando para la acción
    	btnGuardar.addActionListener(this); //Agrega al escuchador de eventos
    	btnLimpiar.setActionCommand("Limpiar"); //Define el comando para la acción
    	btnLimpiar.addActionListener(this); //Agrega al escuchador de eventos
    	btnBuscar.setActionCommand("Buscar"); //Define el comando para la acción
    	btnBuscar.addActionListener(this); //Agrega al escuchador de eventos
    			
	    this.show();
	}
	
	public void actionPerformed(ActionEvent e)
    {
    	String opcion = e.getActionCommand(); //Evento activado
    	if (opcion.equals("Limpiar")) Limpiar();    	    	
    	else if (opcion.equals("Guardar")) 
    	{
    		Guardar(); 
    		LlenarGrid();
    		Limpiar();
    	}
    	else if (opcion.equals("Buscar")) Buscar();
    	   	    	
    }
    
    public void Limpiar()
    {
    	
    }
    
    public void Guardar()
    {    
        
    }
    
    public void Buscar()
    {
    	
    }
	
	public void LlenarGrid()
	{	
		clsCliente objCliente = new clsCliente();							
		VectorId idC = new VectorId();
		objCliente.CambiarGridCliente(tblC);
		
        if (objCliente.LlenarGrid(idC)==false)
        {
			BaseDatos.mensaje("Llenando datos",objCliente.ObtenerError());			
        }
        else
        {
        	JScrollPane sp = new JScrollPane(objCliente.ObtenerGridCliente());	        	
        	sp.setBounds(15,160,365,100);
    		jpFormulario.add(sp);        	
        	objCliente = null;
       	}        				        		
	}
}
Muchas gracias