Foros del Web » Programación para mayores de 30 ;) » Java »

Desde fila de JTable a JTextField

Estas en el tema de Desde fila de JTable a JTextField en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/12/2012, 20:48
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
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
  #2 (permalink)  
Antiguo 05/12/2012, 11:25
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Desde fila de JTable a JTextField

Despues de mucho intentar lo logre! ahi les dejo el codigo por si a alguien mas le sirve:

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

public class Prueba extends JFrame
{
    static String dsn = "dsnParqueadero"; //Define el string de Conexión
    
    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");
	
    JTable tabla=new JTable();	
	
	public static void main (String[]args)
	{		
		new Prueba();
	}
	
	public Prueba()
	{
		//Instancia la ventana
		super("Cliente"); 
		setSize(394,324);
		getContentPane().setLayout(null);		
		this.setResizable(false);
		
		//Evento para cerrar ventana
		addWindowListener(new WindowAdapter()
    	{
    		public void windowClosing(WindowEvent e)
    		{
    			dispose();
    			System.exit(0);
    		}
    	});  	
						
		//Define el string de conexión y los datos de la JTabla
    	//BaseDatos.strDSNUsuarioConexion(dsn);
    	String [] d={"Documento", "Nombre","Apellido", "Teléfono"};
		Object[][] info={{"1128390991", "Leo", "Martinez", "4780144"},{"880397", "Mauro","Lopez", "3117106130"},{"880397", "Mauro","Lopez", "3117106130"},{"880397", "Mauro","Lopez", "3117106130"},{"880397", "Mauro","Lopez", "3117106130"},{"880397", "Mauro","Lopez", "3117106130"},{"880397", "Mauro","Lopez", "3117106130"},{"880397", "Mauro","Lopez", "3117106130"},{"880397", "Mauro","Lopez", "3117106130"}};
		
		//Define el modelo de la JTable
		MiModelo model=new MiModelo();
		model.setDataVector(info, d);		
				
	    //Define la ventana y sus controles
	    	
		lbldocumento.setBounds(10,10,70,20);
    	getContentPane().add(lbldocumento);
    	
    	txtDocumento.setBounds(90,10,190,20);
    	getContentPane().add(txtDocumento);
    	   	    	
    	btnBuscar.setBounds(290,10,90,20);
    	btnBuscar.setToolTipText("Limpiar los campos.");
    	btnBuscar.setActionCommand("Buscar"); //Define el comando para la acción
    	btnBuscar.addActionListener(new ActionListener () 
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			
    		}
    	}); //Agrega al escuchador de eventos
    	getContentPane().add(btnBuscar);
    	   	    	
		lblNombres.setBounds(10,40,150,20);
    	getContentPane().add(lblNombres);
    	
    	txtNombres.setBounds(90,40,190,20);
    	getContentPane().add(txtNombres);
    	
    	lblApellidos.setBounds(10,70,150,20);
    	getContentPane().add(lblApellidos);
    	
    	txtApellidos.setBounds(90,70,190,20);
    	getContentPane().add(txtApellidos);
    	    	
    	lblTelefono.setBounds(10,100,150,20);
    	getContentPane().add(lblTelefono);
    	
    	txtTelefono.setBounds(90,100,190,20);
    	getContentPane().add(txtTelefono);
    	
    	btnLimpiar.setBounds(100,130,90,20);
    	btnLimpiar.setToolTipText("Limpiar los campos.");
    	btnLimpiar.setActionCommand("Limpiar"); //Define el comando para la acción
    	btnLimpiar.addActionListener(new ActionListener () 
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			Limpiar();
    		}
    	}); //Agrega al escuchador de eventos
    	getContentPane().add(btnLimpiar);
    	    	
    	btnGuardar.setBounds(200,130,90,20);
    	btnGuardar.setToolTipText("Guardar los datos digitados.");
    	btnGuardar.setActionCommand("Guardar"); //Define el comando para la acción
    	btnGuardar.addActionListener(new ActionListener () 
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			    			
    		}
    	}); //Agrega al escuchador de eventos
    	getContentPane().add(btnGuardar); 
    	
    	tabla=new JTable(model);
	    tabla.addMouseListener(new MouseAdapter() 
   		{
      		public void mouseClicked(MouseEvent e) 
      		{
         		int row = tabla.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(tabla.getValueAt(row, 0).toString());
   				txtNombres.setText(tabla.getValueAt(row, 1).toString());
   				txtApellidos.setText(tabla.getValueAt(row, 2).toString());
   				txtTelefono.setText(tabla.getValueAt(row, 3).toString());
      		}
   		});
			
	    JScrollPane scroll=new JScrollPane(tabla);
	    scroll.setBounds(10, 160, 370, 130);
	        	
    	getContentPane().add(scroll);
    	
    	this.show();
	}
	
	public void Limpiar()
    {
    	txtDocumento.setText("");
    	txtNombres.setText("");
    	txtApellidos.setText("");
    	txtTelefono.setText("");
    	txtDocumento.setEditable(true);
    }
    
    public void Guardar()
    {    
        /*long lngDocumento;
        String strNombres, strApellidos, strTelefono;
        
        if(txtDocumento.getText() == "")
        {
        	lngDocumento = 0;
        }
        else
        {
        	lngDocumento = Long.parseLong(txtDocumento.getText());
        }
        
        strNombres = txtNombres.getText();
        strApellidos = txtApellidos.getText();
        strTelefono = txtTelefono.getText();
        
        clsCliente objCliente = new clsCliente();

        objCliente.CambiarDocumento(lngDocumento);;
        objCliente.CambiarNombres(strNombres);
        objCliente.CambiarApellidos(strApellidos);
        objCliente.CambiarTelefono(strTelefono);
        
        if (objCliente.Grabar())
        {
        	BaseDatos.mensaje("Guardar",objCliente.ObtenerError());            
        }
        else
        {
        	BaseDatos.mensaje("Guardar",objCliente.ObtenerError());           
        }
        objCliente = null;*/
    }
    
    public void Buscar()
    {
    	/*long lngDocumento;
        String strNombres, strApellidos, strTelefono;
        
        if(txtDocumento.getText() == "" || txtDocumento.getText() == null)
        {
        	lngDocumento = 0;
        }
        else
        {
        	lngDocumento = Long.parseLong(txtDocumento.getText());
        }
        
        clsCliente objCliente = new clsCliente();
        objCliente.CambiarDocumento(lngDocumento);
        if (objCliente.Buscar(lngDocumento))
        {
        	txtNombres.setText(objCliente.ObtenerNombres());
        	txtApellidos.setText(objCliente.ObtenerApellidos());
        	txtTelefono.setText(objCliente.ObtenerTelefono());
        	txtDocumento.setEditable(false);
        }
        else
        {
        	BaseDatos.mensaje("Buscar",objCliente.ObtenerError());           
        }
        objCliente = null;*/
    }
	
	public static void LlenarGrid()
	{	
		/*clsCliente objCliente = new clsCliente();		
		JTable tblC = new JTable();			
		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;
       	}*/			        		
	}
}
Podrian ayudarme destripando mi codigo, quiero saber si si estoy instanciando y utilizando bien el codigo.

muchas gracias

Etiquetas: fila, jtable, jtextfield, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:16.