![]() |
Listener jcombobox Hola! Tengo un pequeño cacao en la cabeza, a ver si alguien puede echarme una manita. Resumen: Tengo una bd en la que guardo los datos de personas que hablan durante una reunion, es decir, guardo los datos de pepito perez y tambien las grabaciones de sus intervenciones (mp3). En una frame enseño los datos de pepito, y de todos los que han hablado, mas los enlaces a sus intervenciones. Si pepito habla tres veces tengo dos jLabel con pepito perez y un jComboBox en el que la lista de elementos son los enlaces a los mp3 de sus intervenciones. Asi por cada asistente que ha hablado en la reunion. Problema: La frame la creo dinamicamente, por que, no en todas las reuniones hay el mismo numero de asistentes ni hablan el mismo numero de veces. Y tengo problemas con el listener del jComboBox ya que no consigo coger los datos. Aqui va el codigo ...................... while (asi.hasMoreElements()) { asie = (String) asi.nextElement(); enl = DatosAsiento(asie, fecha, sesion); this.f = enl.getStrFoto(); FotoBek[n] = new JLabel(); java.awt.Color(0, 0, 0))); FotoBek[n].setIcon(new javax.swing.ImageIcon(enl.getStrFoto())); ////creo el vector de jLabel, recogo el nombre NombreBek[n] = new JLabel(); NombreBek[n].setText(enl.getStrNombre()); ////creo el vector de jLabel, recogo el apellido ApellidoBek[n] = new JLabel(); ApellidoBek[n].setText(enl.getStrApellido()); //creo el vector de jComboBox Mp3Bek[n] = new JComboBox(); //recogo todas las intervenciones de la persona en concreto mp3 = Intervencion_persona_sesion(asie, fecha, sesion); inter = mp3.elements(); //relleno el jComboBox de esa persona en concreto while (inter.hasMoreElements()) { pinter = (String)inter.nextElement(); Mp3Bek[n].addItem(pinter); } /////////////////////////////////////////////////////////////////////////////////////////////// //le añado el action listener al jComboBox en concreto?????Aki es donde me hago un lio , no consigo, pasar bien los datos ////con la funcion jMp3ActionPerformedActionPerformed(e);///quiero pasar el string del jComboBOx he probado a pasar n pero, claro me coge la ultima iteracion ya que la accion es despues de haber dibujado toda la Frame. ////////////////////////////////////////////////////////// Mp3Bek[n].addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMp3ActionPerformedActionPerformed(e); }}); jPanel1.add(FotoBek[n] ); FotoBek[n].setBounds(90, 100+lerropos, 150, 80); jPanel1.add(EmpresaBek[n] ); EmpresaBek[n].setBounds(240, 155+lerropos, 90, 30); jPanel1.add(NombreBek[n]); NombreBek[n].setBounds(440, 155+lerropos, 134, 30); jPanel1.add(ApellidoBek[n] ); ApellidoBek[n].setBounds(640, 155+lerropos, 90, 30); jPanel1.add(Mp3Bek[n]); Mp3Bek[n].setBounds(800, 155+lerropos, 234, 30); lerropos = lerropos + 100; n++; } Muchas gracias, de antemano, Un saludo Rowan |
Re: Listener jcombobox Para coger los datos del combobox, si los coges desde otro lado, no desde esa clase, dale un nombre, y podrás acceder a sus datos. Otra manera: utilizando la sincronización: coges el primero, lo paras, coges el segundo, lo paras... Yo tengo hecho algo así para listar los miembros de un grupo, dinámicamente. Saludos. Saludos. |
Re: Listener jcombobox Hola, Pero como se que ComboBox es el que ha elegido el usuario? Gracias por contestar Saludos |
Re: Listener jcombobox Por el nombre. Cuando el usuario elige un JComboBox, éste tendrá un nombre. Al pinchar puedes recoger el nombre y guardarla en una cadena, por ejemplo. Ésta cadena se la pasas como parámetro al método que sea. Saludos. |
Re: Listener jcombobox Al hacer Mp3Bek[n].getName; //Mp3Bek[n] es el combo Box me devuelve null |
Re: Listener jcombobox Porque primero has de ponerle un nombre:D. JCombobox pepe=new JComboBox(); pepe.setName("juanito"); Saludos. |
Re: Listener jcombobox Creo que estaria en las mismas porque el nombre tendria que asignarlo dinamicamente, tambien. He llegado a solucionar parte de mi problema, creando un vector de combobox y despues en la funcion del actionperfomed me recorro el vector y busco el item seleccionado. Asi ... private JComboBox Mp3Bek[] = new JComboBox [150]; public Vector VMp3 = new Vector(); .... public JFrameIntervenciones(Vector asientos, String fecha, String sesion) { .... while (asi.hasMoreElements()) { asie = (String) asi.nextElement(); //System.out.println("los asi"+asie); enl =DatosAsiento(asie, fecha, sesion); FotoBek[n] = new JLabel(); FotoBek[n].setIcon(new javax.swing.ImageIcon(enl.getStrFoto())); EmpresaBek[n] = new JLabel(); EmpresaBek[n].setText(enl.getStrEmpresa()); NombreBek[n] = new JLabel(); NombreBek[n].setText(enl.getStrNombre()); ApellidoBek[n] = new JLabel(); ApellidoBek[n].setText(enl.getStrApellido()); Mp3Bek[n] = new JComboBox(); mp3 = Intervencion_persona_sesion(asie, fecha, sesion); inter = mp3.elements(); while (inter.hasMoreElements()) { pinter = (String)inter.nextElement(); Mp3Bek[n].addItem(pinter); } Mp3Bek[n].addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMp3ActionPerformedActionPerformed(e); }}); jPanel1.add(FotoBek[n] ); FotoBek[n].setBounds(90, 100+lerropos, 150, 80); jPanel1.add(EmpresaBek[n] ); EmpresaBek[n].setBounds(240, 155+lerropos, 90, 30); jPanel1.add(NombreBek[n]); NombreBek[n].setBounds(440, 155+lerropos, 134, 30); jPanel1.add(ApellidoBek[n] ); ApellidoBek[n].setBounds(640, 155+lerropos, 90, 30); jPanel1.add(Mp3Bek[n]); Mp3Bek[n].setBounds(800, 155+lerropos, 234, 30); VMp3.add(Mp3Bek[n]); lerropos = lerropos + 100; n++; } jScrollPane1.setViewportView(jPanel1); } private void jMp3ActionPerformedActionPerformed (java.awt.event.ActionEvent e) { Enumeration NMp3 = VMp3.elements(); while (NMp3.hasMoreElements()) { JComboBox cb = (JComboBox) NMp3.nextElement(); if (cb.isFocusOwner()) { izena =(String)cb.getSelectedItem(); } } JFramePlayer p = new JFramePlayer(this.asientos, this.fecha, this.sesion, izena); p.setVisible(true); this.setVisible(false); } /////////////// igual es un poco tosco no lo se pero funciona. Muchas gracias por la ayuda, me has hecho pensar, jeje. Gracias otra vez Saludos |
Re: Listener jcombobox Si te sirve, te paso mi aplicación. Tiene una clase que genera los JLabel (no JComboBox pero es lo mismo) y les asigna un nombre de forma dinámica. |
Re: Listener jcombobox Código: public class ComboBoxDemo ... implements ActionListener {Código: private void jMp3ActionPerformedActionPerformed (java.awt.event.ActionEvent e) { |
| La zona horaria es GMT -6. Ahora son las 05:07. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.