Programación General > Java
Juego De Bingo
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
[#] Página Siguiente
Ir a la versión completa