Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 26-feb-2008, 04:42   #1 (permalink)
Rowan ha deshabilitado el karma
 
Fecha de Ingreso: junio-2004
Mensajes: 32
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
Rowan está desconectado   Responder Citando
Antiguo 26-feb-2008, 06:22   #2 (permalink)
Ethiel ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 162
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.
Ethiel está desconectado   Responder Citando
Antiguo 26-feb-2008, 07:30   #3 (permalink)
Rowan ha deshabilitado el karma
 
Fecha de Ingreso: junio-2004
Mensajes: 32
Re: Listener jcombobox

Hola,
Pero como se que ComboBox es el que ha elegido el usuario?

Gracias por contestar

Saludos
Rowan está desconectado   Responder Citando
Antiguo 26-feb-2008, 08:26   #4 (permalink)
Ethiel ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 162
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.
Ethiel está desconectado   Responder Citando
Antiguo 26-feb-2008, 08:44   #5 (permalink)
Rowan ha deshabilitado el karma
 
Fecha de Ingreso: junio-2004
Mensajes: 32
Re: Listener jcombobox

Al hacer
Mp3Bek[n].getName; //Mp3Bek[n] es el combo Box
me devuelve null
Rowan está desconectado   Responder Citando
Antiguo 26-feb-2008, 09:08   #6 (permalink)
Ethiel ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 162
Re: Listener jcombobox

Porque primero has de ponerle un nombre:D.

JCombobox pepe=new JComboBox();

pepe.setName("juanito");

Saludos.
Ethiel está desconectado   Responder Citando
Antiguo 26-feb-2008, 09:57   #7 (permalink)
Rowan ha deshabilitado el karma
 
Fecha de Ingreso: junio-2004
Mensajes: 32
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
Rowan está desconectado   Responder Citando
Antiguo 26-feb-2008, 11:26   #8 (permalink)
Ethiel ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2007
Mensajes: 162
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.
Ethiel está desconectado   Responder Citando
Antiguo 26-feb-2008, 11:45   #9 (permalink)
HackmanC tiene algunos puntos positivos de karma
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 191
Información Re: Listener jcombobox

Código:
public class ComboBoxDemo ... implements ActionListener {
    . . .
        petList.addActionListener(this) {
    . . .
    public void actionPerformed(ActionEvent e) {
        JComboBox cb = (JComboBox)e.getSource();
        String petName = (String)cb.getSelectedItem();
        updateLabel(petName);
    }
    . . .
}
Código:
private void jMp3ActionPerformedActionPerformed (java.awt.event.ActionEvent e) {
  JComboBox cb = (JComboBox) e.getSource();
  izena =(String)cb.getSelectedItem();
}
HackmanC está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 21:10.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93