martes, 15 de mayo de 2012

Cambiar el estilo de los JFrame

Seguramente muchos de ustedes ya se cansaron de ver el mismo estilo que usan para sus aplicaciones 

Ejemplo 1: Este es el estilo predeterminado.


Ahora se preguntaran como lo pueden cambiar

Paso 1: Copien la siguiente linea de código en su método main de cualquier aplicación que estén haciendo.

try {
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
        {
                System.out.println("Nombre del estilo : " + info.getName());
                System.out.println("Clase del estilo : " + info.getClassName());
                System.out.println("-----------------------------------------");

         }
} catch (Exception ex) {
   System.out.println(ex);
}

Paso 2: Algo asi quedaría



Paso 3: Ya que lo copiaron ejecuten su aplicación y les aparecerá algo así:


Como pueden ver tenemos 5 tipos de estilos que podemos usar para cambiar el estilo de nuestras aplicaciones y se vean mas presentables. 

Estos estilos son:

1.- Metal
2.- Nimbus
3.- CDE/Motif
4.- Windows
5.- Windows Classic

Paso 3: El estilo Metal es nuestro estilo predeterminado, así que omitimos el código de ese.

Estilo Nimbus


static{
   try {
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
        {
          
            if ("Nimbus".equals(info.getName()))
             {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }

       }
    } catch (Exception ex) {
       System.out.println(ex);
   }

}


Estilo CDE/Motif


static{
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
          {
           
             if ("CDE/Motif".equals(info.getName()))
             {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
             }

        }
    } catch (Exception ex) {
       System.out.println(ex);
   }

}

Estilo Windows


static{
try {
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
     {
     
         if ("Windows".equals(info.getName()))
         {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
         }

          }
    } catch (Exception ex) {
        System.out.println(ex);
   }

}


Estilo Windows Classic


static{
 try {
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
      {
             if ("Windows Classic".equals(info.getName()))
             {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
             }

      }
 } catch (Exception ex) {
      System.out.println(ex);
 }

}

Paso 4: El codigo escrito anteriormente se debe de poner dentro de la clase, de preferencia luego de declarar la clase

Ejemplo










jueves, 22 de marzo de 2012

Enlace (Links)

Carrito de Compras

https://rapidshare.com/files/581994914/Proyecto.rar

Simulando un Carrito de Compras

Bueno este programa me lo han estado pidiendo en la escuela así que aquí lo tienen, carrito de compras en NetBeans + SQL Server, lo importante de este programa son las altas, bajas y actualizar los registros.






lunes, 19 de marzo de 2012

Parte 5: Simulando Maquina de Recargas del Mexibus

//Clase panel

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

public class Panel extends JPanel {
public void paintComponent(Graphics g){
Dimension tamano=getSize();
ImageIcon imagenFondo=new ImageIcon("Fondo.jpg");
g.drawImage(imagenFondo.getImage(),0,0,tamano.width,tamano.height,null);
setOpaque(false);
super.paintComponent(g);

}
}


//Clase Panel2

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

public class Panel2 extends JPanel {
public void paintComponent(Graphics g){
Dimension tamano=getSize();
ImageIcon imagenFondo=new ImageIcon("Inicio.jpg");
g.drawImage(imagenFondo.getImage(),0,0,tamano.width,tamano.height,null);
setOpaque(false);
super.paintComponent(g);

}
}

//Lo mas importante el metodo main
//Clase mainSistema

public class mainSistema {

public static void main(String[] args) {
Sistema sis=new Sistema();
sis.setLocation(100, 50);
sis.setVisible(true);
//new Sistema().show();


}

}

Parte 4: Simulando Maquina de Recargas del Mexibus

//Clase Procesando

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

public class Procesando extends JFrame{
int costo=15;
Hilo1 h1=new Hilo1();
JLabel lblTexto=new JLabel("OPERACION EXITOSA");
JLabel lblTexto2=new JLabel("Tu saldo actual es: $");
JLabel lblTexto3=new JLabel();

public Procesando(String lblpes){
Panel p=new Panel();
setTitle("Procesando");
setSize(800,650);

lblTexto3.setText(lblpes);
p.setLayout(null);

lblTexto.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblTexto);
lblTexto.setBounds(250,200,400,100);

lblTexto2.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblTexto2);
lblTexto2.setBounds(250,260,400,100);

lblTexto3.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblTexto3);
lblTexto3.setBounds(550,260,400,100);

Container c=getContentPane();
c.add(p);

h1.start();

}
class Hilo1 extends Thread{
public void run(){
try{
Thread.sleep(7000);
dispose();
new Sistema().setVisible(true);
}catch(Exception er){
System.out.println("Error" + er);
}
}
}


}



//Clase ProcesandoRec

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

public class ProcesandoRec extends JFrame{
int costo=15;
Hilo1 h1=new Hilo1();
JLabel lblTexto=new JLabel("OPERACION EXITOSA");
JLabel lblTexto2=new JLabel("Tu saldo actual es: $");
JLabel lblTexto3=new JLabel();

public ProcesandoRec(String lblTotal){
Panel p=new Panel();
setTitle("Procesando");
setSize(800,650);

lblTexto3.setText(lblTotal);
p.setLayout(null);

lblTexto.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblTexto);
lblTexto.setBounds(250,200,400,100);

lblTexto2.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblTexto2);
lblTexto2.setBounds(250,260,400,100);

lblTexto3.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblTexto3);
lblTexto3.setBounds(550,260,400,100);

Container c=getContentPane();
c.add(p);

h1.start();

}
class Hilo1 extends Thread{
public void run(){
try{
Thread.sleep(7000);
dispose();
new Sistema().setVisible(true);
}catch(Exception er){
System.out.println("Error" + er);
}
}
}


}

Parte 3: Simulando la Maquina de Recargas del Mexibus

//Clase Recarga

import java.awt.*;
import java.awt.event.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.*;


public class Recarga extends JFrame{
ImageIcon img[]={new ImageIcon("Cancelar.jpg"),new ImageIcon("Aceptar.jpg"),new ImageIcon("Signo.jpg"),new ImageIcon("Dinero.jpg")};
JButton btnCancelar=new JButton(img[0]);
JButton btnContinuar=new JButton(img[1]);

JLabel lblRecarga=new JLabel("Recarga Max.");
JLabel lblRec=new JLabel("$500.00");

JLabel lblCantidad=new JLabel("Cantidad");
JLabel lblpesos=new JLabel("$");
JLabel lblpes=new JLabel("0");

JLabel lblDinero=new JLabel("Introdusca Dinero");
JTextField txtCantidad=new JTextField();
JButton btnAceptar=new JButton("Aceptar");

JLabel lblBuscar=new JLabel("Clave");
JTextField txtBuscar=new JTextField();
JButton btnBuscar=new JButton("Buscar");

JLabel lblSaldo=new JLabel("Saldo");
JLabel lblTotal=new JLabel("Total");


public Recarga(){
Panel p=new Panel();
setTitle("Recargar Targeta");
setSize(800,650);

p.setLayout(null);

lblRecarga.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblRecarga); lblRecarga.setBounds(20,100,200,50);
lblRec.setFont(new Font("Arial", Font.BOLD,20));
p.add(lblRec); lblRec.setBounds(50,140,100,50);
p.add(btnCancelar); btnCancelar.setBounds(50,500,100,100);
p.add(btnContinuar); btnContinuar.setBounds(500,500,100,100);

lblCantidad.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblCantidad); lblCantidad.setBounds(350,140,250,50);
lblpesos.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblpesos); lblpesos.setBounds(350,190,250,50);
lblpes.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblpes); lblpes.setBounds(380,190,250,50);

p.add(lblDinero); lblDinero.setBounds(650,10,150,30);
p.add(txtCantidad); txtCantidad.setBounds(650,50,50,30);
p.add(btnAceptar); btnAceptar.setBounds(650,90,100,30);

p.add(lblBuscar); lblBuscar.setBounds(650,170,150,30);
p.add(txtBuscar); txtBuscar.setBounds(650,200,50,30);
p.add(btnBuscar); btnBuscar.setBounds(650,240,100,30);

p.add(lblSaldo); //lblSaldo.setBounds(100,10,100,100);

p.add(lblTotal); //lblTotal.setBounds(190,10,100,100);

Container c=getContentPane();
c.add(p);

btnContinuar.addActionListener(new ActionListener (){
public void actionPerformed(ActionEvent pes){
Procesando p=new Procesando(lblTotal.getText());
p.setVisible(true);
dispose();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection conn = DriverManager.getConnection("jdbc:odbc:Database"," "," ");
      String query = "update Tabla1 set Saldo=? where Clave=? ";
      CallableStatement csta = conn.prepareCall(query);

     
      csta.setInt(1, Integer.parseInt(lblTotal.getText()));
   
      csta.setInt(2, Integer.parseInt(txtBuscar.getText()));

      int r = csta.executeUpdate();
     
      //if(r > 0)
         // JOptionPane.showMessageDialog(null, "Se Actualizo correctamente");
     // else
      //    JOptionPane.showMessageDialog(null, "No se Actualizo");
      }
      catch(Exception t){
      JOptionPane.showMessageDialog(null,"Error" + t);
      }
}
});

btnCancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent can){
Sistema s=new Sistema();
s.setVisible(true);
dispose();

}
});

btnAceptar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent pes){
int Cantidad = Integer.parseInt(txtCantidad.getText());
int Saldo=Integer.parseInt(lblSaldo.getText());
int res=Cantidad + Saldo;

lblTotal.setText(String.valueOf(res));
lblpes.setText(String.valueOf(Cantidad));
}
});

btnBuscar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent b){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Connection conn = DriverManager.getConnection("jdbc:odbc:Database"," "," ");
       String query = "select * from Tabla1 Where Clave = ?";
       CallableStatement csta = conn.prepareCall(query);
       csta.setInt(1, Integer.parseInt(txtBuscar.getText()));
       ResultSet rs = csta.executeQuery();
       if(rs.next())
       {
           lblSaldo.setText(rs.getString(2));
       }
      }
      catch(Exception r){
      JOptionPane.showMessageDialog(null,"Error" + r);
      }

}
});

}

}

//Clase Saldo

import java.awt.*;
import java.awt.event.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

import javax.swing.*;


public class Saldo extends JFrame{
ImageIcon img[]={new ImageIcon("Cancelar.jpg"),new ImageIcon("Aceptar.jpg")};
JButton btnCancelar=new JButton(img[0]);
JButton btnContinuar=new JButton(img[1]);
JLabel lblCantidad=new JLabel("Saldo Actual");
JLabel lblpesos=new JLabel("$");
JLabel lblpes=new JLabel("0.00");
JLabel lblBuscar=new JLabel("Clave");
JTextField txtBuscar=new JTextField();
JButton btnBuscar=new JButton("Buscar");
public Saldo(){
Panel p=new Panel();
setTitle("Saldo");
setSize(800,650);
p.setLayout(null);

p.add(btnCancelar); btnCancelar.setBounds(50,500,100,100);
p.add(btnContinuar); btnContinuar.setBounds(500,500,100,100);
lblCantidad.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblCantidad); lblCantidad.setBounds(300,140,250,50);
lblpesos.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblpesos); lblpesos.setBounds(350,190,250,50);
lblpes.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblpes); lblpes.setBounds(380,190,250,50);
p.add(lblBuscar); lblBuscar.setBounds(650,170,150,30);
p.add(txtBuscar); txtBuscar.setBounds(650,200,50,30);
p.add(btnBuscar); btnBuscar.setBounds(650,240,100,30);
Container c=getContentPane();
c.add(p);
btnCancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent can){
Sistema s=new Sistema();
s.setVisible(true);
dispose();
}
});
btnContinuar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent can){
Sistema s=new Sistema();
s.setVisible(true);
dispose();
}
});
btnBuscar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent b){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Connection conn = DriverManager.getConnection("jdbc:odbc:Database"," "," ");
       String query = "select * from Tabla1 Where Clave = ?";
       CallableStatement csta = conn.prepareCall(query);
       csta.setInt(1, Integer.parseInt(txtBuscar.getText()));
       ResultSet rs = csta.executeQuery();
       if(rs.next())
       {
           lblpes.setText(rs.getString(2));
       }
      }
      catch(Exception r){
      JOptionPane.showMessageDialog(null,"Error" + r);
      }
}
});
}

}

Parte 2: Simulando Maquina de Recargas del Mexibus

Acá el Código  

//La Clase Sistema
import java.awt.Container;
import java.awt.event.*;
import javax.swing.*;


public class Sistema extends JFrame{
ImageIcon img[]={new ImageIcon("Metro.jpg"),new ImageIcon("Figura.jpg"),new ImageIcon("Comprar.jpg"),new ImageIcon("Recarga.jpg"),new ImageIcon("Saldo.jpg")};

JLabel lblMaquina=new JLabel(img[0]);

JButton btnComprar=new JButton(img[2]);
JButton btnRecarga=new JButton(img[3]);
JButton btnSaldo=new JButton(img[4]);


public Sistema(){
Panel p=new Panel();
setTitle("Sistema");
setSize(800,650);

p.setLocation(100, 50);
p.setLayout(null);
p.add(lblMaquina); lblMaquina.setBounds(250,50,330,72);
p.add(btnComprar); btnComprar.setBounds(200,150,400,100);
p.add(btnRecarga); btnRecarga.setBounds(200,300,400,100);
p.add(btnSaldo);   btnSaldo.setBounds(200,450,400,100);

Container c=getContentPane();
c.add(p);

btnComprar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent cp){
Comprar c=new Comprar();
c.setLocation(100, 50);
c.setVisible(true);
dispose();
}
});

btnRecarga.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent Rg){
Recarga r=new Recarga();
r.setLocation(100, 50);
r.setVisible(true);
dispose();
}
});

btnSaldo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent sl){
Saldo s=new Saldo();
s.setLocation(100, 50);
s.setVisible(true);
dispose();
}
});

}
}

//La Clase Comprar

import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import javax.swing.*;


public class Comprar extends JFrame{
ImageIcon img[]={new ImageIcon("Cancelar.jpg"),new ImageIcon("Aceptar.jpg"),new ImageIcon("Signo.jpg")};
JButton btnCancelar=new JButton(img[0]);
JButton btnContinuar=new JButton(img[1]);
JLabel lblCosto=new JLabel("Costo");
JLabel lblCos=new JLabel("$10.00");
JLabel lblPasaje=new JLabel("Pasaje");
JLabel lblPas=new JLabel("$5.00");
JLabel lblCantidad=new JLabel("Cantidad");
JLabel lblpesos=new JLabel("$");
JLabel lblpes=new JLabel("0");
JLabel lblDinero=new JLabel("Introdusca Dinero");
JButton Introduce=new JButton(img[2]);
public Comprar(){
Panel p=new Panel();
setTitle("Comprar Targeta");
setSize(800,650);
p.setLayout(null);
lblCosto.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblCosto); lblCosto.setBounds(50,100,100,50);
lblCos.setFont(new Font("Arial", Font.BOLD,20));
p.add(lblCos); lblCos.setBounds(50,140,100,50);
lblPasaje.setFont(new Font("Arial", Font.BOLD,30));
p.add(lblPasaje); lblPasaje.setBounds(50,200,100,50);
lblPas.setFont(new Font("Arial", Font.BOLD,20));
p.add(lblPas); lblPas.setBounds(50,240,100,50);
p.add(btnCancelar); btnCancelar.setBounds(50,500,100,100);
p.add(btnContinuar); btnContinuar.setBounds(500,500,100,100);
lblCantidad.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblCantidad); lblCantidad.setBounds(350,140,250,50);
lblpesos.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblpesos); lblpesos.setBounds(350,190,250,50);
lblpes.setFont(new Font("Arial", Font.BOLD,40));
p.add(lblpes); lblpes.setBounds(380,190,250,50);
p.add(lblDinero); lblDinero.setBounds(650,10,150,30);
p.add(Introduce); Introduce.setBounds(650,50,100,100);
Container c=getContentPane();
c.add(p);
btnContinuar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent con){
Procesando p=new Procesando(lblpes.getText());
p.setVisible(true);
dispose();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c=DriverManager.getConnection("jdbc:odbc:Database"," "," ");

PreparedStatement st=c.prepareStatement("Insert into Tabla1(Saldo) values(?)");
st.setInt(1,Integer.parseInt(lblpes.getText()));
st.executeUpdate();
lblpes.setText(" ");
}catch(Exception er){
JOptionPane.showMessageDialog(null,"Error" + er);
}
}
});
btnCancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent can){
Sistema s=new Sistema();
s.setVisible(true);
dispose();
}
});
Introduce.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent pes){
int Costo=10;
String Cantidad = JOptionPane.showInputDialog("Cantidad:");
int res=Integer.parseInt(Cantidad)-Costo;
lblpes.setText(String.valueOf(res));
}
});
}

}

Parte 1: Simulando Maquina de Recargas del Mexibus

Este proyecto es una simulación de la maquina del Mexibus donde puedes Comprar Nueva Tarjeta, Recargar Tarjeta y Consultar el Saldo. Todos los datos se almacenan en una pequeña base de datos que esta echa en Access.


1.- La etiqueta roja es para comprar nueva tarjeta.
2.- La etiqueta negra es para recargar la tarjeta.
3.- La etiqueta azul es para consultar el saldo.


Si le damos en comprar nueva tarjeta aparecerá la imagen de arriba.

Donde dice Introducir dinero si le damos clic en la imagen con Signo de pesos aparecerá un cuadro donde nosotros debemos de teclear la cantidad, lo mas recomendable era que se pusieran botones simulando las monedas, pero debido al tiempo lo hice así. 

Por ultimo nos aparece Operación exitosa y automáticamente nos regresa al menú. 


Si elegimos la opción de Recargar Tarjeta nos aparecerá la siguiente Ventana.  


Donde dice Introduzca dinero ahí debemos de teclear la cantidad que deseamos que tenga la tarjeta.

Este sistema estaría mejor si se le hubiera agregado algún tipo de Scanner, con el Scanner te detecta la clave de la tarjeta o el ID, pero como sale caro comprar un Scanner de codigo de barras hay que hacerlo manual.


Donde dice Clave nosotros debemos de poner la Clave de nuestra Tarjeta, para que cuando demos aceptar la recarga se valla a nuestra tarjeta.   

 

Para consultar el saldo de la tarjeta básicamente es lo mismo, debemos de introducir la clave de nuestra tarjeta para ver nuestro saldo. 


La Base de datos esta echa en Access 


Como ven es muy sencilla, cada vez que compren una Nueva Tarjeta la base de datos estará creciendo.  








lunes, 12 de marzo de 2012

Interfaz en Java con conexión a Base de Datos (SQL Server y Access)

Mas adelante empezare a poner conexiones de Java a SQL Server y Access

Enlace(Links)

Muñeco de Nieve

https://rapidshare.com/files/701204598/Muñeco.rar

Aprendiendo a Multiplicar


https://rapidshare.com/files/834975628/Multiplicaciones.rar

Enlace (Links)

Maquina Despachadora de Agua:

https://rapidshare.com/files/3692893433/Despachadora_de_Hielo_y_Agua.rar

Perímetro y Área

https://rapidshare.com/files/256148255/Dibujar.rar

Parte 4: Simulando una Maquina Despachadora de Agua


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

public class Despachadora3 extends JFrame{
Hilo1 h=new Hilo1();
Hilo2 h2=new Hilo2();

JLabel lblTexto=new JLabel("Despachadora de Agua/Hielo");
ImageIcon im[]={new ImageIcon("Vaso.jpg")};
ImageIcon im1=new ImageIcon("refrigerador.jpg");
ImageIcon im0=new ImageIcon("refrigerador2.jpg");
JLabel lblImagen2=new JLabel(im0);
JLabel lblImagen=new JLabel(im1);
JLabel lblVaso=new JLabel(im[0]);
JButton btn1=new JButton("$5 Chico");
JButton btn2=new JButton("$8 Mediano");
JButton btn5=new JButton("$12 Grande");
JLabel lblTex=new JLabel("Tu cambio es: $");
JLabel lblCambio=new JLabel();
JLabel lblDinero=new JLabel("Introduce tu dinero: $");
JTextField txtDinero=new JTextField();
int contador=0;

JPanel panel=new JPanel();

int posx, posy;
Despachadora3(){
setTitle("Despachadora de Hielo y Agua");
setSize(415,625);

panel.setLayout(null);

lblDinero.setFont(new Font("Arial", Font.BOLD, 15));
lblDinero.setBounds(200,10,160,50);
panel.add(lblDinero);

txtDinero.setBounds(355,25,30,20);
panel.add(txtDinero);

lblTex.setFont(new Font("Arial", Font.BOLD,15));
lblTex.setBounds(10,10,110,50);
panel.add(lblTex);

lblTex.setFont(new Font("Arial", Font.BOLD,15));
lblCambio.setBounds(130,10,100,50);
panel.add(lblCambio);

btn1.setBounds(40,70,90,20);
panel.add(btn1);

btn2.setBounds(150,70,100,20);
panel.add(btn2);

btn5.setBounds(270,70,100,20);
panel.add(btn5);

lblVaso.setBounds(160,290,100,150);
panel.add(lblVaso);

lblImagen2.setBounds(160,152,100,100);
panel.add(lblImagen2);

lblImagen.setBounds(0,0,415,625);
panel.add(lblImagen);


h2.start();

Container c=getContentPane();
c.add(panel);


btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent uno){
int res,can,prec;
//for(int i=1; i<100; i++){
can = Integer.parseInt(txtDinero.getText());
int c=5;
res=can-c;
lblCambio.setText(String.valueOf(res));
//}

txtDinero.setText("");

h.start();

}
});

btn2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent dos){
int res,can,prec;
can = Integer.parseInt(txtDinero.getText());
int m=8;
res=can-m;
lblCambio.setText(String.valueOf(res));
txtDinero.setText("");
h.start();
}
});

btn5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent cinco){
int res,can,prec;
can = Integer.parseInt(txtDinero.getText());
int g=12;
res=can-g;
lblCambio.setText(String.valueOf(res));
txtDinero.setText("");
h.start();
}
});

}
class Hilo1 extends Thread{
public void run(){
try{
Thread.sleep(5000);
dispose();

Despachadora2 d=new Despachadora2(txtDinero.getText());
d.setVisible(true);
}catch(Exception er){}

}
}
class Hilo2 extends Thread{
public void run(){
try{
while(true){
Thread.sleep(1000);
if(contador<=3){
contador++;
lblImagen.setIcon(im[contador]);
}
else{
contador=0;
lblImagen.setIcon(im[0]);
}
}
}catch(Exception er){}
}
}

}

//Metodo main


public class mainDespachadora {

public static void main(String[] args) {
new Despachadora().setVisible(true);
}

}

Descargar:

https://rapidshare.com/files/3692893433/Despachadora_de_Hielo_y_Agua.rar

Parte 3: Simulando una Maquina Despachadora de Agua


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

public class Despachadora2 extends JFrame{
Hilo1 agua=new Hilo1();
Hilo2 hielo=new Hilo2();
HiloT1 tiempo1=new HiloT1();
HiloT2 tiempo2=new HiloT2();
Hilo h=new Hilo();
HiloH h2=new HiloH();

JLabel lblTexto=new JLabel("Despachadora de Agua/Hielo");
ImageIcon im1=new ImageIcon("refrigerador.jpg");
ImageIcon im0=new ImageIcon("refrigerador2.jpg");
ImageIcon im2=new ImageIcon("Vaso.jpg");
ImageIcon im3=new ImageIcon("Hielo.jpg");
ImageIcon im4=new ImageIcon("Agua.jpg");
JLabel lblImagen2=new JLabel(im0);
JLabel lblImagen=new JLabel(im1);
JLabel lblVaso=new JLabel(im2);
JLabel lblHielo=new JLabel(im3);
JLabel lblAgua=new JLabel(im4);
JButton btnAgua=new JButton("Agua");
JButton btnHielo=new JButton("Hielo");
JButton btn1=new JButton("$5 Chico");
JButton btn2=new JButton("$8 Mediano");
JButton btn5=new JButton("$12 Grande");
JLabel lblTex=new JLabel("Tu cambio es: $");
JLabel lblCambio=new JLabel();
JLabel lblDinero=new JLabel("Introduce tu dinero: $");
JTextField txtDinero=new JTextField();
public boolean issuspended = false;

JPanel panel=new JPanel();

int posx, posy;
Despachadora2(String Cambio){
setTitle("Despachadora de Hielo y Agua");
setSize(415,625);

tiempo1.start();
tiempo2.start();

panel.setLayout(null);

lblCambio.setText(Cambio);

lblDinero.setFont(new Font("Arial", Font.BOLD, 15));
lblDinero.setBounds(200,10,160,50);
panel.add(lblDinero);

txtDinero.setBounds(355,25,30,20);
panel.add(txtDinero);

lblTex.setFont(new Font("Arial", Font.BOLD,15));
lblTex.setBounds(10,10,110,50);
panel.add(lblTex);

lblTex.setFont(new Font("Arial", Font.BOLD,15));
lblCambio.setBounds(130,10,100,50);
panel.add(lblCambio);

btnAgua.setBounds(60,185,70,20);
panel.add(btnAgua);

btnHielo.setBounds(280,185,70,20);
panel.add(btnHielo);

btn1.setBounds(40,70,90,20);
panel.add(btn1);

btn2.setBounds(150,70,100,20);
panel.add(btn2);

btn5.setBounds(270,70,100,20);
panel.add(btn5);

lblVaso.setBounds(160,290,100,150);
panel.add(lblVaso);

lblImagen2.setBounds(160,152,100,100);
panel.add(lblImagen2);

lblHielo.setBounds(160,152,100,100);
panel.add(lblHielo);

lblAgua.setBounds(160,152,100,100);
panel.add(lblAgua);

lblImagen.setBounds(0,0,415,625);
panel.add(lblImagen);



Container c=getContentPane();
c.add(panel);

btnHielo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent h){
hielo.start();
h2.start();
}
});

btnAgua.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent a){
agua.start();
h.start();
}
});

btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent uno){
btn1.setEnabled(false);
}
});

btn2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent dos){
btn2.setEnabled(false);
}
});

btn5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent cinco){
btn5.setEnabled(false);
}
});

}

class Hilo extends Thread{
public void run(){
try{
Thread.sleep(4000);
dispose();
new Despachadora3().setVisible(true);
}catch(Exception er){}
}
}
class HiloH extends Thread{
public void run(){
try{
Thread.sleep(4000);
dispose();
new Despachadora3().setVisible(true);
}catch(Exception er){}
}
}
class Hilo1 extends Thread{
public void run(){
int y=200;
try{
while(true){
Thread.sleep(100);
lblAgua.setBounds(160,y,100,100);
y=y+20;
if(y>250){
y=220;
}
}

}catch(Exception er){}
}
}

class Hilo2 extends Thread{
public void run(){
int y=152;

try{
while(true){
Thread.sleep(200);
lblHielo.setBounds(160,y,100,100);
y=y+20;
if(y>290){
y=220;
}
}
}catch(Exception er){}

}
}

class HiloT1 extends Thread{
public void run(){
try{
  Thread.sleep(1000);
  //new Despachadora3().setVisible(true);
}catch(Exception er){}

}
}
class HiloT2 extends Thread{
public void run(){
try{
Thread.sleep(1000);

}catch(Exception er){}
}
}

}