Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2012, 18:37
marco64yes
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 7 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!