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

Asociar evento a un vector de button, para ahorrar codigo :)

Estas en el tema de Asociar evento a un vector de button, para ahorrar codigo :) en el foro de Java en Foros del Web. hola a todos , estoy en la elaboración de un applet inmenso, entonces quería saber si se puede ahorrar código de una manera similar a ...
  #1 (permalink)  
Antiguo 03/12/2010, 23:02
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 15 años, 6 meses
Puntos: 12
Pregunta Asociar evento a un vector de button, para ahorrar codigo :)

hola a todos , estoy en la elaboración de un applet inmenso, entonces quería saber si se puede ahorrar código de una manera similar a esta:

Tengo un vector de JButton:

Cita:
static JButton numero[]=new JButton[11];
y eso me sirvió mucho pues pude inicializarlos y agregarlos a un JWindow con ciclos

pero ala hora de asignarles un evento de esta manera:

Cita:
numero.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent o)
{
///codigo...

}
});
No me sirvio y yo sabia que eso era lo mas probable, así que mi pregunta es de que manera puedo evitarme tener que asociar ese evento a cada JButton del vector, y de cierta manera aprovechar el vector para ahorrar codigo ??...
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-
  #2 (permalink)  
Antiguo 04/12/2010, 00:11
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Respuesta: Asociar evento a un vector de button, para ahorrar codigo :)

hola yo tengo un probema de un trabajo final me pidieron un menu que ejecute todos los programas hechos durante el semestre pero ya le movi por todos lados ami programa y creo q hasta ya lo heche a perder jeje.. el caso esq si crea la clase pero hasta aya ejecuta el menu seleccionas una opcion y ya no hace nada solo te saca del programa. este es mi codigo me super urge una respuesta

import javax.swing.*;
import java.lang.*;
import java.lang.String;



public class menu {


public static void main(String[] args) {






int opcion;
opcion = Integer.parseInt(JOptionPane.showInputDialog("elig e una opcion: \n\n 1.horoscopo\n 2.historia\n 3.sumanumeros\n 4. psicologo\n 5.lisa"));

switch (opcion) {

case 1:

horoscopo.setVisible(true);


break;

case 2:

historia.setVisible(true);


break;

case 3:
sumanumeros.setvisible(true);


break;

case 4:

psicologo.setvisible(true);


break;

case 5:



lisa.setvisible(true);


break;



default:


JOptionPane.showMessageDialog(null,"hasta pronto");

}
}

private static class historia {

private static void setVisible(boolean b) {
this.historia=historia;

}

public historia() {

}
}

private static class lisa {

private static void setvisible(boolean b) {

}

public lisa() {
}
}

private static class psicologo {

private static void setvisible(boolean b) {

}

public psicologo() {
}
}

private static class sumanumeros {

private static void setvisible(boolean b) {
throw new UnsupportedOperationException("Not yet implemented");
}

public sumanumeros() {
}
}

private void Dispose() {

}

private static class horoscopo {

private static void setVisible(boolean b) {

}

public horoscopo() {
}
}
}
  #3 (permalink)  
Antiguo 04/12/2010, 00:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Asociar evento a un vector de button, para ahorrar codigo :)

A cada botón, aprovechando el bucle, puedes ponerle un setActionCommand("1"), o setActionCommand("lo que quieras").

A todos los botones, también aprovechando el bucle, puedes añadirles el mismo ActionListener. Dentro del actionPerformed() puedes hacer esto

Código java:
Ver original
  1. public void actionPerformed (ActionEvent e) {
  2.     String actionCommand = e.getActionCommand();
  3.     if ("1".equals(actionCommand)) {
  4.         ....
  5.     } else if ("2".equals(actionCommand) {
  6.        .....
  7. }

Si fuesen número como el ejemplo (estás haciendo una calculadora, por ejemplo), no hace falta tanto if, simplemente Integer.parseInt(actionCommand) y ya obtienes el número para hacer lo que quieras con él.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: asociar, eventos, vectores
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 12:07.