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

como asignar un valor a un combobox de un jtable en java

Estas en el tema de como asignar un valor a un combobox de un jtable en java en el foro de Java en Foros del Web. hola, buenas a todos. tengo una tabla en la cual en la primera columna tengo un combobox, el cual contiene números de producto y en ...
  #1 (permalink)  
Antiguo 05/10/2014, 15:19
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
como asignar un valor a un combobox de un jtable en java

hola, buenas a todos.

tengo una tabla en la cual en la primera columna tengo un combobox, el cual contiene números de producto y en la segunda columna de la tabla tengo el nombre del producto, los cuales tienen un listener que lo que deveria hacer es que si cambia el numero a su ves cambie el nombre de producto que le corresponde a ese numero de producto y viceversa.

la cosa es que el valor que seleccionan tanto en la primera columna como en la segunda columna lo rescato, pero no se como acceder al jcombobox para asignarle el valor.
  #2 (permalink)  
Antiguo 06/10/2014, 01:11
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: como asignar un valor a un combobox de un jtable en java

Buenas,

Para cambiar el valor de un combo se puede usar el metodo setSelectedItem.
http://docs.oracle.com/javase/7/docs...va.lang.Object)


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 06/10/2014, 08:19
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: como asignar un valor a un combobox de un jtable en java

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Para cambiar el valor de un combo se puede usar el metodo setSelectedItem.
[url]http://docs.oracle.com/javase/7/docs/api/javax/swing/JComboBox.html#setSelectedItem(java.lang.Object[/url])


Un saludo
hola graciass por responder Profesor_Falken, pero te recuerdo que el combobox esta dentro de una estructura de un jtable, tal vez no me explique bien a lo mejor me falto poner un poco de codigo.

Código Java:
Ver original
  1. tmodel = new DefaultTableModel(){@Override
  2.         public boolean isCellEditable (int fila, int columna) {
  3.             if(columna==0 || columna==1 || columna==5 || columna==7){
  4.                 return true;
  5.             }
  6.             return false;
  7.            
  8.         }        
  9.         };
  10.            
  11.         tmodel.addColumn("id producto");
  12.         tmodel.addColumn("Nombre");
  13.         tmodel.addColumn("precio");
  14.         tmodel.addColumn("Unidad de medida");
  15.         tmodel.addColumn("Medida");
  16.         tmodel.addColumn("cantidad");
  17.         tmodel.addColumn("Subtotal");
  18.         jtListaProducto.setModel(tmodel);
  19.         //String nombreColumnaTable[] ={"idproducto","nombre","precio","medida"};
  20.         JComboBox jcbIdProducto = new JComboBox();
  21.         JComboBox jcbNombreProducto =new JComboBox();
  22.         addActionstable(jcbNombreProducto);
  23.         addActionstable(jcbIdProducto);
  24.        
  25.         TableColumn col1=jtListaProducto.getColumnModel().getColumn(0);//columna1 del jtable jproductos
  26.         TableColumn col2=jtListaProducto.getColumnModel().getColumn(1);
  27.         TableColumn col7;
  28.        
  29.        
  30.         TableCellEditor tce1= new DefaultCellEditor(jcbIdProducto);//table cell editable de la columna 1 de jtable jproductos
  31.         TableCellEditor tce2= new DefaultCellEditor(jcbNombreProducto);
  32.         //TableCellEditor tce7= new DefaultCellEditor(eliminar);
  33.         col1.setCellEditor(tce1);
  34.         DefaultComboBoxModel dcmid = new DefaultComboBoxModel();// defaultcomboxmodel del combobox idproducto
  35.         DefaultComboBoxModel dcmNombre = new DefaultComboBoxModel();
  36.        
  37.         jcbIdProducto.setModel(dcmid);
  38.         jcbNombreProducto.setModel(dcmNombre);
  39.        
  40.         for (int i = 0; i < listap.size(); i++) {
  41.             dcmid.addElement(listap.get(i).getId_producto());
  42.         }
  43.        
  44.         for (int i = 0; i < listap.size(); i++) {
  45.             dcmNombre.addElement(listap.get(i).getNombre());
  46.         }
  47.        
  48.         col1.setCellEditor(tce1);
  49.         col2.setCellEditor(tce2);
  50.        
  51.         tmodel.addRow(new Object[]{""});
  52.  
  53.  
  54. private void addActionstable(JComboBox a) {
  55.         final ItemListener changeClick;
  56.         changeClick = new ItemListener() {
  57.            
  58.             public void itemStateChanged(ItemEvent e) {
  59.                
  60.                // System.out.println(selecionado);
  61.                 if(-1!=(int)a.getSelectedIndex()){
  62. //                    JOptionPane.showMessageDialog(rootPane, jtListaProducto.getSelectedColumn() +" COLUMNA"+ jtListaProducto.getSelectedRow()+" fila");
  63.                     if(jtListaProducto.getSelectedColumn()==0){
  64. //                        JOptionPane.showMessageDialog(rootPane,jtListaProducto.getCellEditor().getCellEditorValue());
  65. //                        JOptionPane.showMessageDialog(rootPane, tmodel.getValueAt(0,0 ).toString());
  66. //                        System.out.println(selecionadoId(jtListaProducto.getCellEditor().getCellEditorValue().toString()));
  67.                         tmodel.setValueAt(listap.get(selecionadoId(jtListaProducto.getCellEditor().getCellEditorValue().toString())).getMedida(), jtListaProducto.getSelectedRow(), 3);
  68.                         tmodel.setValueAt(listap.get(selecionadoId(jtListaProducto.getCellEditor().getCellEditorValue().toString())).getPrecio(), jtListaProducto.getSelectedRow(), 2);
  69.                     }else{
  70. //                        JOptionPane.showMessageDialog(rootPane,jtListaProducto.getCellEditor().getCellEditorValue());
  71.                     }
  72.                 }
  73.             }
  74.  
  75.            
  76.  
  77.        
  78.         };
  79.         a.addItemListener(changeClick);
  80.     }


ahi un poco de codigo como donde coloco los combox en jtable pero nose como haceder a los combobox y cambiar el itemselecionadado

dado que no existe nada como

jtable.getcombobox.setselecter(index);
  #4 (permalink)  
Antiguo 06/10/2014, 09:52
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: como asignar un valor a un combobox de un jtable en java

Cita:
pero te recuerdo que el combobox esta dentro de una estructura de un jtable
??? Y cual es la dificultad? En un jTable se puede obtener cualquier componente sabiendo la fila y la columna:

JComboBox combo = (JComboBox) table1.getCellEditor(row, column);


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 07/10/2014, 20:23
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: como asignar un valor a un combobox de un jtable en java

el problema es que no se como asignarle el valor.

Etiquetas: aplicacion, escritorio, evento, jcombobox, jtable
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 17:49.