elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  como pasar un resulset a un jcombobox dentro de jtable?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como pasar un resulset a un jcombobox dentro de jtable?  (Leído 6,804 veces)
hack-4-life

Desconectado Desconectado

Mensajes: 52



Ver Perfil WWW
como pasar un resulset a un jcombobox dentro de jtable?
« en: 20 Mayo 2011, 18:26 pm »

hola bueno,que tal, me surgio otra duda...ahora implemente lo que muchos preguntan,como tener un jcombobox a un jtable....


ahora si yo cargo los items de mi base de datos de esta manera....normalmente

Código
  1. public void cargarcombo(JComboBox jcbclave_product){
  2. try{
  3.            Class.forName (driver);
  4.  
  5.            con = DriverManager.getConnection (url,user,pass);
  6.            System.out.println ("su conexion ha sido muy exitosa"+con);
  7.            stmt = con.createStatement();
  8.  
  9.  
  10. rs = stmt.executeQuery("SELECT clave FROM productos");
  11. jcbclave_product.removeAllItems();
  12. jcbclave_product.addItem("<-Seleccionar->");
  13.  
  14. while(rs.next()==true){
  15.  
  16.    jcbclave_product.addItem(rs.getObject(1));
  17.  
  18.  
  19.  
  20.         }//fin del while
  21.         } catch (Exception e){
  22.               e.printStackTrace();
  23.  
  24.  
  25.            }//fin del try
  26.  
  27.  
  28.  
  29. }
  30.  
  31.  

y ahora mando a traer mi metodo asii

Código
  1. esto lo pongo en initscomponents
  2.    bd.cargacombo(jcbclave_product);
  3.  


ahora mi pregunta es...


como le paso los datos a un jcombobox que esta en un jtable?eso es lo que no entiendo como hacerlo...


Código
  1. yo el agrego el jcombobox en estas lineas
  2. ESTOS SON LOS datos que tiene
  3. public static final String[] DATA = { "Dato 1", "Dato 2", "Dato 3", "Dato 4" };
  4.       DefaultCellEditor defaultCellEditor=new DefaultCellEditor(comboBox);
  5.  
  6. //le digo que la COLUMNA 4 LO VA A TENER
  7.         tabla.getColumnModel().getColumn(4).setCellEditor(defaultCellEditor);
  8.  
  9.  
  10.  

ahora mi pregunta...como se lo implemento con la consulta que yo tengo vere la manera de hacerlo eso es lo que no entiendo..bueno gracias saludos


« Última modificación: 20 Mayo 2011, 21:41 pm por hack-4-life » En línea

""DE QUE SIRVE EL CONOCIMIENTO SI SE PRIVA DE SU DISTRIBUCION"
sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: como pasar un resulset a un jcombobox dentro de jtable?
« Respuesta #1 en: 20 Mayo 2011, 23:55 pm »

Código:
public class Producto {
private int id;
private String nombre;

public Producto(int id, String nombre) {
this.id = id;
this.nombre = nombre;
}

public int getId() {
return id;
}

public String getNombre() {
return nombre;
}

@Override
public String toString() {

return "Producto [id= " + id + " nombre= " + nombre + " ]";
}
}

Código:
import java.awt.BorderLayout;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTable;

public class Main {
public static void main(String arg[]) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 400);
frame.setLocationRelativeTo(null);
JComboBox jComboBox = new JComboBox();
jComboBox.addItem(new Producto(1, "producto 1"));
jComboBox.addItem(new Producto(2, "producto 2"));
jComboBox.addItem(new Producto(3, "producto 3"));
jComboBox.addItem(new Producto(4, "producto 4"));
frame.setLayout(new BorderLayout());
DefaultCellEditor defaultCellEditor = new DefaultCellEditor(jComboBox);
JTable jtable = new JTable(3, 1);
jtable.getColumnModel().getColumn(0).setCellEditor(defaultCellEditor);
frame.getContentPane().add(jtable);
frame.setVisible(true);
}
}

Dentro de la tabla está contenida objetos de tipo producto (no tengas ningun miedo en crear clases) no es la solución con mejor manejo de memoria pero si la mas facil y rapida

-debido al comportamiento por defecto que tienen las clases swing que e usado
Una vez que seleccionas el producto que quieras la celdas se divujaran como una cadena que es obtenida al llamar al método toString de la clase producto
Eso quiere decir que si quieres que se represente la celda de otra forma digamos solo el nombre tendrías que cambiar el método toString del producto por getNombre()

-cuando llames al método getValueAt(fila,columna) te devolverá una un Objeto de la clase Producto

nota esta solución no es la más correcta si quieres trabajar representar tablas muy grandes miles de registros pero debido a que esta es una horrible practica que debe ser evita y habiendo la alternativa de simplemente paginar la tabla considero como la mejor opción

Esta solución carga objetos de tipo producto en memoria podría ser optimizada cargando solo las llaves primarias en memoria pero tendrías que tener conocimientos mas avanzados de swing y crear más clases



« Última modificación: 20 Mayo 2011, 23:57 pm por sapito169 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Uso de jTable y jComboBox
Java
garçon 3 9,953 Último mensaje 24 Junio 2009, 22:47 pm
por garçon
Jcombobox y Jtable Urgente
Java
dcasta2403 1 3,523 Último mensaje 28 Enero 2010, 04:00 am
por Blitzkrieg'
JComboBox en un JTable
Java
Xedrox 1 3,584 Último mensaje 22 Agosto 2011, 17:48 pm
por Leyer
ayuda como pasar informacion de un texto a un JTable
Java
miguelsora 1 5,596 Último mensaje 8 Junio 2013, 00:41 am
por Mitgus
¿Cómo pasar el contenido de un JTable a sql server?
Java
marc85 0 1,633 Último mensaje 4 Marzo 2014, 19:38 pm
por marc85
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines