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){}
}
}

}

Parte 2: Simulando una Maquina Despachadora de Agua

Ahora si, lo que es mas importante el código, son 3 clases y el método main, en las 3 clases es casi lo mismo solo cambian unas cuantas lineas, para que no piensen que es lo mismo, ya que maneje hilos y cada X segundos cambia automáticamente a la otra clase.

Código:


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

public class Despachadora 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;
Despachadora(){
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);
//new Despachadora2().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){}
}
}

}