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

Pasar valores de un JList a un JTable

Estas en el tema de Pasar valores de un JList a un JTable en el foro de Java en Foros del Web. ¡Hola! Vengo con una duda, tengo un JList con unas categorías ya hechas: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original static DefaultListModel mL = new DefaultListModel ...
  #1 (permalink)  
Antiguo 28/07/2015, 20:02
Avatar de OPMUANRK  
Fecha de Ingreso: diciembre-2014
Mensajes: 52
Antigüedad: 9 años, 4 meses
Puntos: 1
Exclamación Pasar valores de un JList a un JTable

¡Hola!

Vengo con una duda, tengo un JList con unas categorías ya hechas:

Código Java:
Ver original
  1.     static DefaultTableModel mT = new DefaultTableModel();
  2.     public Principal() {
  3.         initComponents();
  4.         Categorias.setModel(mL);
  5. mL.addElement("De Entrada");
  6. mL.addElement("Ensaladas");
  7. mL.addElement("Camarones");
  8. mL.addElement("Charolas");
  9. mL.addElement("Combos");
  10. mL.addElement("Filetes y Chicharrones");
  11. mL.addElement("Pescados Enteros");
  12. mL.addElement("Menú Infantil");
  13. mL.addElement("Comida China");
  14. mL.addElement("Platillos Mexicanos");
  15. mL.addElement("Bebidas");
  16. this.Categorias.setModel(mL);
  17. Categorias.updateUI();
  18.         mT = (DefaultTableModel) Platillos.getModel();
  19.         mT.addColumn("Platillo");
  20.         mT.addColumn("Precio");
  21.         this.Platillos.setModel(mT);
  22.         setLocationRelativeTo(null);
  23.     }

Lo de arriba es el código de la tabla vacía y la lista con categorías, y como la tabla está vacía, quiero que haga lo siguiente:

Cuando seleccione un valor de la JList, (p.e: De Entrada), que se muestren los platillos de entrada en la tabla junto con su precio

Y que cada que seleccione un valor de la JList, se cambien los valores en la tabla

Gracias de antemano :)
  #2 (permalink)  
Antiguo 29/07/2015, 07:44
Avatar de GusGarsaky  
Fecha de Ingreso: febrero-2015
Mensajes: 33
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Pasar valores de un JList a un JTable

Busca en Google primero, te ahorras muchas horas esperando que alguien te responda cuando tienes la solución en los buscadores ;)

Directo al grano; en el post anterior te mostré la forma de obtener el ítem seleccionado del JList desde el ListModel. Entonces, esos objetos Meal, deberías de mostrarlos en el JTable de la siguiente forma:

Código Java:
Ver original
  1. listCategories.addSelectionListener(new ListSelectionListener() {
  2.      
  3.         @Override
  4.         public void valueChanged(ListSelectionEvent e) {
  5.             if(!e.getValueIsAdjusting()) {
  6.                 RestaurantDao dao = new RestaurantDao();
  7.                 // jlist origen del evento
  8.                 JList target = (JList) e.getSource();
  9.                 // index seleccionado en la lista
  10.                 int indexSelected = target.getSelectedIndex();
  11.                 // obtiene el listmodel y obtiene el objeto Category por index
  12.                 Category category = target.getSelectionModel().get(indexSelected);
  13.                 // obtiene la lista de platillos de acuerdo a la categoria
  14.                 List<Meal> meals = dao.getMealsByCategory(category.getId());
  15.                
  16.                 // pasas los platillos a la tabla...
  17.                 // mealsTable es el JTable
  18.                 Model tblModel = mealsTable.getModel();
  19.                 for(Meal meal : meals) {
  20.                     String name = meal.getName();
  21.                     float price = meal.getPrice();
  22.                     tblModel.addRow(new Object[] {name, price});
  23.                 }
  24.  
  25.             }
  26.         }
  27.     });
  #3 (permalink)  
Antiguo 29/07/2015, 12:09
Avatar de OPMUANRK  
Fecha de Ingreso: diciembre-2014
Mensajes: 52
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: Pasar valores de un JList a un JTable

Gracias Gus, de nuevo xD

Etiquetas: jlist, jtable, netbeans, programacion
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 03:40.