Ejemplo de hilos en Java – Casino

Ejemplo de hilos en Java – Casino

Hoy vamos a hablar un poco de programacion, mas especificamente veremos un ejemplo de hilos en java mediante el famoso juego de una maquina tragamonedas de un casino, veremos el manejo de hilos en java y mostraremos todo el codigo fuente del proyecto. Este es un proyecto mio que encontre entre mis carpetas anidadas y anidadas de mi computadora de la era de la escuela asi que si tienes una duda no dudes compartirlas aqui o en el foro.

Ejemplo de hilos en Java – Video

Clase principal

public static void main(String[] args) {
Interfaz ventana = new Interfaz();
ventana.setSize(700,300);
ventana.setResizable(false);
ventana.setLocationRelativeTo(null);
ventana.setTitle("Casino (Hilos)");
ventana.setVisible(true);
}

Imagenes

ejemplo de hilos en java ejemplo de hilos en java ejemplo de hilos en java

Interfaz

public class Interfaz extends JFrame{
JButton detener1 = new JButton("Detener");
JButton detener2 = new JButton("Detener");
JButton detener3 = new JButton("Detener");
JButton iniciar = new JButton("Iniciar");
JButton detenerTodo = new JButton("Detener Todo");
public static String img1="pera.jpg",img2="piña.jpg",img3="sandia.jpg";
public static JLabel uno = new JLabel();
public static JLabel dos = new JLabel();
public static JLabel tres = new JLabel();
JPanel controles = new JPanel();
JPanel imagenes = new JPanel();
Imagen1 hilo1 = new Imagen1();
Imagen2 hilo2 = new Imagen2();
Imagen3 hilo3 = new Imagen3();
int z=0;

public Interfaz(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
uno.setIcon(new ImageIcon(img1));
dos.setIcon(new ImageIcon(img2));
tres.setIcon(new ImageIcon(img3));
imagenes.setLayout(new FlowLayout());
imagenes.add(uno);
imagenes.add(dos);
imagenes.add(tres);
controles.setLayout(new GridLayout(2,3));
controles.add(detener1);
controles.add(detener2);
controles.add(detener3);
controles.add(iniciar);
controles.add(detenerTodo);
add("Center",imagenes);
add("South",controles);

//Controles
iniciar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
if(hilo1.isAlive() == false){
if(hilo2.isAlive() == false){
if(hilo3.isAlive() == false){
hilo1 = new Imagen1();
hilo2 = new Imagen2();
hilo3 = new Imagen3();
hilo1.activo=true;
hilo2.activo=true;
hilo3.activo=true;
hilo1.start();
hilo2.start();
hilo3.start();
z=1;
}
}
}
}
});

detenerTodo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
if(z==1){
hilo1.activo=false;
hilo2.activo=false;
hilo3.activo=false;
if(hilo1.c==hilo2.c){
if(hilo2.c==hilo3.c){
JOptionPane.showMessageDialog(Interfaz.this," Ganador ! ! ! ");
}
}
}
}
});

detener1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
hilo1.activo=false;
}
});

detener2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
hilo2.activo=false;
}
});

detener3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
hilo3.activo=false;
}
});
}
}

Imagen 1

public class Imagen1 extends Thread{
boolean activo=true;
Random img = new Random();
Random tiem = new Random();
int i=0;
int tiempo=0;
int c=0;

@Override
public void run(){
while(activo==true){
i=img.nextInt(4);
tiempo=tiem.nextInt(100);
if(i==1){
Interfaz.uno.setIcon(new ImageIcon(Interfaz.img1));
c=1;
}
if(i==2){
Interfaz.uno.setIcon(new ImageIcon(Interfaz.img2));
c=2;
}
if(i==3){
Interfaz.uno.setIcon(new ImageIcon(Interfaz.img3));
c=3;
}
try{
sleep(tiempo);
}catch(InterruptedException e){}
}
}
}

Imagen 2

public class Imagen2 extends Thread{
boolean activo=true;
Random img = new Random();
Random tiem = new Random();
int i=0;
int tiempo=0;
int c=0;

@Override
public void run(){
while(activo==true){
i=img.nextInt(4);
tiempo=tiem.nextInt(100);
if(i==1){
Interfaz.dos.setIcon(new ImageIcon(Interfaz.img1));
c=1;
}
if(i==2){
Interfaz.dos.setIcon(new ImageIcon(Interfaz.img2));
c=2;
}
if(i==3){
Interfaz.dos.setIcon(new ImageIcon(Interfaz.img3));
c=3;
}
try{
sleep(tiempo);
}catch(InterruptedException e){}
}
}
}

Imagen 3

public class Imagen3 extends Thread{
boolean activo=true;
Random img = new Random();
Random tiem = new Random();
int i=0;
int tiempo=0;
int c=0;

@Override
public void run(){
while(activo==true){
i=img.nextInt(4);
tiempo=tiem.nextInt(100);
if(i==1){
Interfaz.tres.setIcon(new ImageIcon(Interfaz.img1));
c=1;
}
if(i==2){
Interfaz.tres.setIcon(new ImageIcon(Interfaz.img2));
c=2;
}
if(i==3){
Interfaz.tres.setIcon(new ImageIcon(Interfaz.img3));
c=3;
}
try{
sleep(tiempo);
}catch(InterruptedException e){}
}
}
}

Si buscas un tutorial un poco mas facil de entender no dudes en revisar un post que escribe hace un tiempo precisamente de manejo de hilos en linuxhispano.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

Saludos!

Clic para valorar esta información
[Total: 1 Promedio: 5]