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 ...
 
Antiguo 05/10/2014, 15:19
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 14 años
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.
 
Antiguo 06/10/2014, 01:11
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 11 años, 9 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
 
Antiguo 06/10/2014, 08:19
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 14 años
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);
 
Antiguo 06/10/2014, 09:52
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 11 años, 9 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
 
Antiguo 07/10/2014, 20:23
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 14 años
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 18:02.