elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:50  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  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 1,778 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 »

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
public void cargarcombo(JComboBox jcbclave_product){
try{
           Class.forName (driver);
 
           con = DriverManager.getConnection (url,user,pass);
           System.out.println ("su conexion ha sido muy exitosa"+con);
           stmt = con.createStatement();
 
 
rs = stmt.executeQuery("SELECT clave FROM productos");
jcbclave_product.removeAllItems();
jcbclave_product.addItem("<-Seleccionar->");
 
while(rs.next()==true){
 
   jcbclave_product.addItem(rs.getObject(1));
 
 
 
        }//fin del while
        } catch (Exception e){
              e.printStackTrace();
 
 
           }//fin del try
 
 
 
}
 
 

y ahora mando a traer mi metodo asii

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


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
yo el agrego el jcombobox en estas lineas
ESTOS SON LOS datos que tiene
public static final String[] DATA = { "Dato 1", "Dato 2", "Dato 3", "Dato 4" };
      DefaultCellEditor defaultCellEditor=new DefaultCellEditor(comboBox);
 
//le digo que la COLUMNA 4 LO VA A TENER
        tabla.getColumnModel().getColumn(4).setCellEditor(defaultCellEditor);
 
 
 

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 por hack-4-life » En línea

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


Desconectado Desconectado

Mensajes: 421



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

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 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 4,669 Último mensaje 24 Junio 2009, 22:47
por garçon
Como se cambia la apariencia de una JTable??
Java
alzehimer_cerebral 1 1,931 Último mensaje 27 Enero 2010, 19:43
por Casidiablo
Jcombobox y Jtable Urgente
Java
dcasta2403 1 1,632 Último mensaje 28 Enero 2010, 04:00
por Blitzkrieg'
como generar un modelo de jtable?
Java
hack-4-life 5 1,850 Último mensaje 20 Mayo 2011, 16:10
por hack-4-life
JComboBox en un JTable
Java
Xedrox 1 1,164 Último mensaje 22 Agosto 2011, 17:48
por Leyer
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines