Programación General > Java

 Juego De Bingo

(1/2) > >>

hitman47:
Hola amigos me preguntaba si se puede hacer que las varibles tabla, cont y c
sean globales para q pueda trabajar con ellas en el ActionPerformed ya q si las
inicializo dentro de este metodo no me sirve. o si se las puedo pasar de para-
metro a este metodo. Salu2 de antemano.


--- Código: Text --- import javax.swing.*;import java.awt.*;import java.awt.event.*;  class Surface extends JFrame {      public int i;  Surface(){    final int tabla[][],c=0,cont=0;    //tabla almacena los numeros q el jugador desea en su tablero    int x,y,a,s,sa;    tabla=new int[5][5];    y=10;    s=0;    sa=0;    JButton boton[];//creo una arreglo de botones    boton = new JButton[100];       getContentPane( ).setLayout(null);    for (a=1;a<=10;a++)//cambia de fila     {      x=10;  for (i=sa;i<=sa+9;i++)//cantidad de columnas     {            s=i;       boton[i]=new JButton(s+"");       boton[i].addActionListener(         new ActionListener (){           public void actionPerformed (ActionEvent event)           {               String texto;             texto=event+"";//extrae el texto del boton del evento             texto=texto.substring(48,50);                if (texto.charAt(1) ==(char)44)//44 es la coma                   texto=texto.substring(0,1);             JOptionPane.showMessageDialog (null,texto);//deseo utilizarlas aqui pero no puedo             }          });//fin de action listener    this.getContentPane().add(boton[i]);    boton[i].setBounds(x,y,50,50);    x=x+50;      }   y=y+50;         sa=s+1;//asigno el # en q quede para seguir la cuenta  }}}    class Bingo {    public static void main(String args[]) {    Surface obj= new Surface();  obj.setBounds(100,5,525,550);obj.setVisible(true);  obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}  } 

JuanK:
Tienes muchas maneras de solucionar esa necesidad..
aca te propongo una:


--- Código: Text --- import javax.swing.*;import java.awt.*;import java.awt.event.*; public static class VarGlob{   public static string var1;   public static int var2;} class Surface extends JFrame {      public int i;      public VarGob Global;  Surface(){    final int tabla[][],c=0,cont=0;    //tabla almacena los numeros q el jugador desea en su tablero    int x,y,a,s,sa;    tabla=new int[5][5];    y=10;    s=0;    sa=0;    JButton boton[];//creo una arreglo de botones    boton = new JButton[100];       getContentPane( ).setLayout(null);    for (a=1;a<=10;a++)//cambia de fila     {      x=10;  for (i=sa;i<=sa+9;i++)//cantidad de columnas     {            s=i;       boton[i]=new JButton(s+"");       boton[i].addActionListener(         new ActionListener (){           public void actionPerformed (ActionEvent event)           {               String texto;             texto=event+"";//extrae el texto del boton del evento             texto=texto.substring(48,50);                if (texto.charAt(1) ==(char)44)//44 es la coma                   texto=texto.substring(0,1);             JOptionPane.showMessageDialog (null,texto);//deseo utilizarlas aqui pero no puedo             }          });//fin de action listener    this.getContentPane().add(boton[i]);    boton[i].setBounds(x,y,50,50);    x=x+50;      }   y=y+50;         sa=s+1;//asigno el # en q quede para seguir la cuenta  }  Global.var1 = "hola";  Global.var2 = 32600;}}    class Bingo {    public static void main(String args[]) {    VarGlob Global2;     if( Global2.var1=="hola")       Global2.var2 =0;    Surface obj= new Surface();  obj.setBounds(100,5,525,550);obj.setVisible(true);  obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}  } 

hitman47:
hey JuanK puse tu codigo pero no corre me dice q la clase VarGlob de estar
en un Archivo *.java pero gracias por responder. creo que voy a tener q dejar
eso de los 100 botones ya q habia hecho eso para q el jugador pudiese escojer
sus 25 #s que queria en su carton pero no querria escribir un actionPerformed
para cada boton pero ya q no se puede voy a buscar otra forma.

                            Salu2 y gracias  :comp:

JuanK:

--- Citar ---en un Archivo *.java
--- Fin de la cita ---

Por supuesto.. crei que dsso ya lo sabias...

pues simplemente colocalo en el archivo VarGlob.java justo como te lo pide el compilador...
cual es el problema? :scream:

antony_soluciones:
Esta solucion depronto le sirva también...

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class VarGlob
{
  public static String var1;
  public static int var2;
}

class Surface extends JFrame {
     public int i;
     public VarGlob Global;
 Surface(){
   final int tabla[][],c=0,cont=0;
   //tabla almacena los numeros q el jugador desea en su tablero
   int x,y,a,s,sa;
   tabla=new int[5][5];
   y=10;
   s=0;
   sa=0;
   JButton boton[];//creo una arreglo de botones
   boton = new JButton[100];
      getContentPane( ).setLayout(null);
   for (a=1;a<=10;a++)//cambia de fila
   {
     x=10;
 for (i=sa;i<=sa+9;i++)//cantidad de columnas
    {
      s=i;
      boton=new JButton(s+"");
      boton.addActionListener(
        new ActionListener (){
          public void actionPerformed (ActionEvent event)
          {

            String texto;
            texto=event+"";//extrae el texto del boton del evento
            texto=texto.substring(48,50);
               if (texto.charAt(1) ==(char)44)//44 es la coma
              texto=texto.substring(0,1);
            JOptionPane.showMessageDialog (null,texto);
//deseo utilizarlas aqui pero no puedo

 }
         });//fin de action listener
   this.getContentPane().add(boton);
   boton.setBounds(x,y,50,50);
   x=x+50;
  }
  y=y+50;
        sa=s+1;//asigno el # en q quede para seguir la cuenta
 }
 Global.var1 = "hola";
 Global.var2 = 32600;
}
}

public class Bingo {

 public static void main(String args[]) {
   VarGlob.var1="hola";

   if( VarGlob.var1=="hola")
      VarGlob.var2 =0;
   Surface obj= new Surface();
 obj.setBounds(100,5,525,550);
obj.setVisible(true);
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa