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
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.

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.
UdemySaludos!
Clic para valorar esta información
[Total: 1 Promedio: 5]