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

JcomboBox, MouseEvent

Estas en el tema de JcomboBox, MouseEvent en el foro de Java en Foros del Web. Hola una duda, Deseo ejecutar una accion cuando seleccione un item de un JcomboBox, el se que el Jcombobox esta compuesto por diferentes componenentes como ...
  #1 (permalink)  
Antiguo 03/10/2012, 18:37
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 14 años, 2 meses
Puntos: 9
Exclamación JcomboBox, MouseEvent

Hola una duda,

Deseo ejecutar una accion cuando seleccione un item de un JcomboBox, el se que el Jcombobox esta compuesto por diferentes componenentes como JtextField, Jlist, etc. Y por ende manipular el evento del click es dificil.
Pero cuento con el sig. codigo que ya lo hace, PERO solamente ejecuta la accion cuando doy click en el JcomboBox, si selecciono el Item tengo que volver a dar un click sobre el JcomboBox para que ahora si ejecute lo que seleccione.
Mi codigo es:

Código PHP:
Component[] comps comboBox.getComponents();
   for(
int i 0comps.lengthi++)
   { 
      
comps[i].addMouseListener(new MouseAdapter() {
      public 
void mouseClicked(MouseEvent me) {
      
System.out.println("clicked");
     }
});

Otra opcion seria:

Código PHP:
miComboBox.getEditor().getEditorComponent().addMouseListener(new java.awt.event.ActionListener() {
    public 
void actionPerformed(ActionEvent e) {
            

public 
void mouseClicked(java.awt.event.MouseEvent evt) {    
             
System.out.println("clicked");          
 }      
       public 
void mouseEntered(java.awt.event.MouseEvent evt) {                 System.out.println("Entered JComboBox");          } 

            }
        }); 
Pero es lo mismo, se ejecuta cuando paso el mouse sobre el jcombobox, solamente y no HASTA cuando selecciono un item :S

Alguien sabe como puedo resolver esto?

Si solamente ingreso el actionListener, si funcionaria con el click seleccionado el item, pero el problema es que al ejecutar cualquier proceso todo el tiempo pasa por ese actionListener y todo el tiempo se ejecuta la accion

Código PHP:
masiveSelectOptCbx.addActionListener(new java.awt.event.ActionListener() {
            public 
void actionPerformed(ActionEvent e) {
            

System.out.println("Click");  


            }
        }); 
Por ello complemento de la sig. manera:
Código PHP:

masiveSelectOptCbx
.addActionListener(new java.awt.event.ActionListener() {
            public 
void actionPerformed(ActionEvent e) {


Component[] comps comboBox.getComponents();
   for(
int i 0comps.lengthi++)
   { 
      
comps[i].addMouseListener(new MouseAdapter() {
      public 
void mouseClicked(MouseEvent me) {
      
System.out.println("clicked");
     }
});
}

            }
        }); 
El problema es lo que les mencionaba al inicio con el click :S
Alguien me podria dar una idea?, gracias amigos!
  #2 (permalink)  
Antiguo 03/10/2012, 23:15
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: JcomboBox, MouseEvent

Lo normal es sólo poner un actionListener y debería funcionar correctamente.

No entiendo "pero el problema es que al ejecutar cualquier proceso todo el tiempo pasa por ese actionListener y todo el tiempo se ejecuta la accion" ¿qué es "ejecutar cualquier proceso"?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 04/10/2012, 06:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 14 años, 2 meses
Puntos: 9
Exclamación Respuesta: JcomboBox, MouseEvent

Cita:
Iniciado por chuidiang Ver Mensaje
Lo normal es sólo poner un actionListener y debería funcionar correctamente.

No entiendo "pero el problema es que al ejecutar cualquier proceso todo el tiempo pasa por ese actionListener y todo el tiempo se ejecuta la accion" ¿qué es "ejecutar cualquier proceso"?

Se bueno.
Hola Chuidiang, muchas gracias por tu apoyo!!!
Si, a lo que me refiero con que "se ejecuta todo el tiempo" es porque hay boton que al ser ejecutado manda a realizar una busqueda a la base de datos, pero el JComboBox maestro que manejo (el cual tiene el actionListener) cuenta con un comboBoxRenderer el cual ejecuta un proceso de realizar cambios a Jcomboboxes que se encuentran en una columna cierta columna de una tabla.

Entonces mi caso es:
Tengo un Jcombobox maestro(no esta dentro de los resultados de la base de datos) y se ecuentra FUERA de la tabla con los resultados.
Entonces cuando selecciono un item del mismo debe de cambiar todos los items de los Jcomboboxes de cierta columna de la tabla con los resultados de la BD al item selecto del Jcombobox maestro.
Si dejo el actionListener funciona, PERO si realizo una NUEVA busqueda el actionListener del Jcombobox maestro se ejecuta sin que yo lo autorice y me cambia todos los resultados de los Jcombobxes del nuevo resultado al item con el resultado anterior del Jcombobox maestro.

Es por ello que deseo validar que solo se active al dar CLICK, pero es ahi donde estoy atorado :S

Muchas gracias nuevamente!!! espero no a verte confundido , de lo contrario hazmelo saber :) , saludos!

Etiquetas: actionlistener, jcombobox, mouseevent
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 20:22.