Reutilizacion de codigp

Hola, una pregunta mira, mi perograma ya kedo pero lo k ahora estoy tratando de hacer es reutlizar el codigo, ya k cada k lo unik k cambia es una variable, entonces estaba pensando en crear una funcion, para despues solo ir cambiando la variable segun corresponda, el codigo es:
 bt2.addActionListener(//ACCION AL PULSAR EL BOTON
new ActionListener() {
public void actionPerformed( ActionEvent evento )//FUNCION
{
File archivo = null;
FileReader fr = null;
String linea;
String b;
ArrayList lineas = new ArrayList();
ArrayList lineas2=new ArrayList();
String p[]={ "$GPEVENT:TCP.Client.ePingSent",
"$GPEVENT:TCP.Client.ePacketSent",
"$GPEVENT:SYS.Timer.e0",
"$GPEVENT:SYS.Timer.e1",
"$GPEVENT:SYS.Timer.e2",
"$GPEVENT:SYS.Timer.e3",
"$GPEVENT:SYS.Timer.e4",
"$GPEVENT:SYS.Timer.e5",
"$GPEVENT:SYS.Timer.e6",
"$GPEVENT:SYS.Timer.e7",
"$GPEVENT:SYS.Timer.e8",
"$GPEVENT:SYS.Timer.e9",
"$GPEVENT:SYS.Timer.e10",
"$GPEVENT:SYS.Timer.e11",
"$GPEVENT:SYS.Timer.e12",
"$GPEVENT:SYS.Timer.e13",
"$GPEVENT:SYS.Timer.e14",
"$GPEVENT:SYS.Timer.e15",
"$GPEVENT:SYS.Timer.e16",
"$GPEVENT:SYS.Timer.e17",
"$GPEVENT:SYS.Timer.e18",
"$GPEVENT:SYS.Timer.e19",
"$GPEVENT:TCP.Client.eDisconnecting",
"$GPEVENT:TCP.Client.eDisconnected",
"$GPEVENT:GSM.GPRS.eDisconnecting",
"$GPEVENT:GSM.GPRS.eDisconnected",
"$GPEVENT:GSM.GPRS.eConnecting",
"$GPEVENT:GSM.GPRS.eConnected",
"$GPEVENT:TCP.Client.eConnecting",
"$GPEVENT:TCP.Client.eConnected",
"$GPEVENT:GSM.eCellChange",
"$GPEVENT:GSM.eOpFound",
"$GPEVENT:GSM.eOpLost",
"$GPEVENT:SYS.Device.eStart" };
try {
fr = new FileReader (s2);
BufferedReader br = new BufferedReader(fr);
while((linea=br.readLine())!=null){
lineas.add(linea); } //fin while
for (int j = 0 ; j < lineas.size() ; j++){
linea = (String)lineas.get(j);
StringTokenizer st = new StringTokenizer( linea,"=" );
while(st.hasMoreTokens()){ //inicio while2
b= st.nextToken();
for (int c = 0; c< p.length; c++ )
if(b.startsWith(p[c]))
lineas2.add(b); }//fin while2
} //fin for
for (int k = 0 ; k < lineas2.size() ; k++){
b=(String)lineas2.get(k);
}
//conteo areaSalida.append ("\n");
areaSalida.append ("EVENTOS"+ "\n");
for (int l = 0 ; l {
int h = 1;
for (int m = l + 1 ; m {
if ( lineas2.get(l)!=null && lineas2.get(m)!=null && lineas2.get(l).equals(lineas2.get(m)) )
{
h++;
lineas2.set(m,null); }}
if ( lineas2.get(l)!= null)
{
areaSalida.append ( lineas2.get(l)+ " " + h +"\n");
}}
}//FIN DEL TRY
catch(IOException e){
System.out.println(e);
}
finally{
try{ //el bloque finally se ejecuta siempre, por eso, si se cierra el fichero
if( fr != null){ //al final del primer try, y ha dado un error antes, pasaría
fr.close(); //al 1er catch y luego saldría, dejándolo abierto. Es conveniente
} //cerrarlo aquí, comprobando que no sea -por un error anterior, como
}catch (IOException e){ // no tener permisos de lectura o que no exista - de valor null.
}
}
}//fin ActionPerformed
}//fin ActionListener
); //FIN ACCION
hay 7 botones 1 por cada String p[], como prodria resolver esto???????
espero me puedas ayudar
GRAX
:)

1 respuesta

Respuesta
1
Me dices que hay 7 botones, uno por cada String p[], pero por lo que veo p[] tiene bastantes mas elementos (34 para ser exactos). Independientemente de esto, lo que puedes hacer es lo siguiente: Te puedes crear una clase que herede de ActionListener, y que acepte tantos parámetros como necesites. En el actionPerformed de la nueva clase mete lo que tienes ahora. En tu clase principal, metete en un bucle para crear tantos botones como quieras, y asignarles como actionListener la nueva clase que te has creado. Pasale en el constructor los parámetros que necesite el código del actionPerformed.
Espero haberte ayudado. Pregúntame cualquier duda que te surja.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas