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

Crear botones con While ?

Estas en el tema de Crear botones con While ? en el foro de Java en Foros del Web. Crear botones con While ? Estoy creando botones masivos con un bucle no se si sera posible es solo por curiocidad y me da un ...
  #1 (permalink)  
Antiguo 15/12/2011, 11:40
 
Fecha de Ingreso: octubre-2011
Mensajes: 153
Antigüedad: 10 años, 9 meses
Puntos: 7
Crear botones con While ?

Crear botones con While ?

Estoy creando botones masivos con un bucle no se si sera posible es solo por curiocidad y me da un error en la linea 16.


Código Java:
Ver original
  1. import javax.IO.*;
  2. import java.awt.*;
  3. import javax.swing.*;
  4.  
  5. public class prueba
  6. {
  7.     public static void main(String []args)
  8.     {
  9.  
  10.     JFrame frame = new JFrame("Prueba");
  11.  
  12.     int x = 1;
  13.  
  14.     while (x <= 10) {
  15.  
  16.         Jbutton miboton + x = new Jbutton();
  17.  
  18.         frame.add(miboton + x);
  19.  
  20.         x++;
  21.     }
  22.    
  23.     frame.setVisible(true);
  24.    
  25.     }
  26. }
__________________
Mi mail: [email protected]
  #2 (permalink)  
Antiguo 15/12/2011, 14:19
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 11 años, 3 meses
Puntos: 344
Respuesta: Crear botones con While ?

Sí se pueden crear botones nuevos con cualquier bucle, pero desde luego lo que no se puede hacer es usar la sintaxis que estás usando.

Código Java:
Ver original
  1. import javax.IO.*;
  2. import java.awt.*;
  3. import javax.swing.*;
  4.  
  5. public class prueba
  6. {
  7.     public static void main(String []args)
  8.     {
  9.  
  10.     JFrame frame = new JFrame("Prueba");
  11.  
  12.     int x = 1;
  13.  
  14.     while (x <= 10) {
  15.  
  16.        //En la parte izquierda de una asignación solo puede haber el nombre de una variable
  17.        // Jbutton miboton + x = new Jbutton();
  18.          Jbutton botonlocal = new Jbutton();
  19.         frame.add(botonlocal);
  20.  
  21.         /*
  22.          * Se puede simplificar de esta otra manera
  23.          *  frame.add(new Jbutton());
  24.           */
  25.        
  26.  
  27.         x++;
  28.     }
  29.    
  30.     frame.setVisible(true);
  31.    
  32.     }
  33. }
  #3 (permalink)  
Antiguo 15/12/2011, 17:50
 
Fecha de Ingreso: octubre-2011
Mensajes: 153
Antigüedad: 10 años, 9 meses
Puntos: 7
Respuesta: Crear botones con While ?

gracias alexg88

tengo la siguiente duda,

como se identificara el boton si toda las instancias se llaman iguales ? o no es necesario identificarla como por ejemplo


Jbutton botonlocal1 = new Jbutton();
Jbutton botonlocal2 = new Jbutton();
Jbutton botonlocal3 = new Jbutton();

ya que para asignarle un evento o listener a un boton determinado y no a todos por completo.


Código Java:
Ver original
  1. Jbutton botonlocal = new Jbutton();
  2.  
  3. o
  4.  
  5. frame.add(new Jbutton());
__________________
Mi mail: [email protected]
  #4 (permalink)  
Antiguo 16/12/2011, 02:24
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 11 años, 3 meses
Puntos: 344
Respuesta: Crear botones con While ?

Si quieres diferenciar unos botones de otros puedes guardarlos en un array, una colección de Java (como ArrayList o LinkedList) o en una tabla hash (HashMap).

En esta última podrías identificar el botón mediante una clave que, por ejemplo, podría ser de tipo string.

Un ejemplo con el HashMap:

Código Java:
Ver original
  1. HashMap<String,JButton> botones = new HashMap<String,JButton>();
  2.  
  3.  for(i=1;i<=10;i++) {
  4.  
  5.        JButton boton = new Jbutton();
  6.         botones.put("boton"+i,boton);
  7.         frame.add(boton);  
  8.     }
  9.  
  10. //Puedes referenciar un boton así:
  11.  
  12. JButton boton = botones.get("boton1");
  13.  
  14. //Añades un evento de escucha
  15. boton.addActionListener(...)

Puedes utilizar un bucle for en vez del while para lo que quieres hacer, es más natural.

Saludos
  #5 (permalink)  
Antiguo 26/01/2012, 06:44
 
Fecha de Ingreso: abril-2011
Mensajes: 9
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Crear botones con While ?

Cita:
Iniciado por alexg88 Ver Mensaje
//Puedes referenciar un boton así:

JButton boton = botones.get("boton1");

//Añades un evento de escucha
boton.addActionListener(...)
[/HIGHLIGHT]

Saludos

Muchas gracias, me ha servido bastante!!
pero tengo una pregunta:
Y si en vez de botones lo he hecho con CheckBox y quiero saber cuales han sido seleccionados. El numero de checkBox es un numero variable que ronda los 100 y por lo tanto no lo puedo hacer hacer uno a uno como tu propones
  #6 (permalink)  
Antiguo 26/01/2012, 14:17
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 11 años, 3 meses
Puntos: 344
Respuesta: Crear botones con While ?

Utiliza un bucle para recorrer el hashMap o el array que tengas con los checkbox.

Todo depende de para que vayas a utilizarlo, a lo mejor se podría hacer de otra forma, pero habría que saber para que quieres utilizarlo.

Saludos.

Etiquetas: botones, string
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 16:14.