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

Necesito manipular muchos botones y Exisitirá Algo como un for each?

Estas en el tema de Necesito manipular muchos botones y Exisitirá Algo como un for each? en el foro de Java en Foros del Web. Buenas Noches Mentes Maestras de este respetado foro! ;) Me han pedido una aplicación de cine en mi Universidad y estoy empezando a programarla ya, ...
  #1 (permalink)  
Antiguo 15/11/2011, 00:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 11 años
Puntos: 2
Pregunta Necesito manipular muchos botones y Exisitirá Algo como un for each?

Buenas Noches Mentes Maestras de este respetado foro! ;)

Me han pedido una aplicación de cine en mi Universidad y estoy empezando a programarla ya, pero yo sé que será como 30 botones aproximadamente y no me gustaría agregarle el ActionListener 30 veces sino que pueda agregarlo cómodamente en un For dinámicamente.

Por eso quiero saber si existe un for each de cada elemento del jframe y que identifique si es un botón o alguna solución parecida.

La idea mía es la siguiente:

Código PHP:
int i=0;
for 
each element{
        if(
element[i].type=="jbutton")
                
element[i].setActionCommand("bt"+i);
                
element[i].addActionListener(unAction);
        }
        
i++;

Espero que haya sido claro en mi explicación.

De antemano muchisimas gracias por su ayuda.
  #2 (permalink)  
Antiguo 15/11/2011, 04:07
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 10 años
Puntos: 344
Respuesta: Necesito manipular muchos botones y Exisitirá Algo como un for each?

Lo que puedes hacer es utilizar un array donde guardes todos los botones y luego tienes la opción de usar un for normal.

Código Java:
Ver original
  1. JButton[] botones = new JButton[]{new JButton("1"), new JButton("2")};
  2.  
  3. for(int i=0;i<botones.length;i++){
  4.  
  5.                 botones[i].setActionCommand("bt"+i);
  6.                 botones[i].addActionListener(unAction);
  7. }

EDITO:

Puedes utilizar esto también:

Código Java:
Ver original
  1. JFrame ventana = new JFrame();
  2.  
  3. Components[] componentes = ventana.getContentPane().getComponents();
  4.  
  5. for(int i=0;i<componentes.length;i++){
  6.  
  7.    if (componentes[i] instanceof JButton)
  8.            {
  9.                componentes[i].setActionCommand("bt"+i);
  10.                componentes[i].addActionListener(unAction);
  11.             }
  12. }

Esto sólo funciona si todos los botones han sido añadidos directamente al contentPane del JFrame y no mediante otros JPanel.
De ser así, tendrías que realizar una función recursiva (no tiene porque ser recursiva) que recorriera todos los niveles de componentes buscando los que son botones.

Última edición por alexg88; 15/11/2011 a las 04:20
  #3 (permalink)  
Antiguo 17/11/2011, 02:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 11 años
Puntos: 2
Respuesta: Necesito manipular muchos botones y Exisitirá Algo como un for each?

Muchísimas Gracias!

Me ha servido mucho tu código.

Bendiciones!

Etiquetas: botones, manipular, muchos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:11.