miércoles, 25 de noviembre de 2015

Clase HomeCliente

package pacman;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.TextArea;

import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.border.BevelBorder;
import javax.swing.border.TitledBorder;
import java.awt.List;
import javax.swing.DropMode;
import java.awt.SystemColor;
import javax.swing.UIManager;
import javax.swing.ImageIcon;
import javax.swing.JProgressBar;

public class HomeCliente extends JFrame {

private JPanel contentPane;
private static LoginCliente log;
private BaseDatos bd ;
private Partida partida;
private JTextArea textArea;
private int iPartidas=1;
private ClientePacman cliente;
private boolean IniciarPartida=true;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
//Home frame = new Home(log);
//frame.setUndecorated(true);
//frame.setLocationRelativeTo(frame);
//frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public HomeCliente(LoginCliente l) {
setIconImage(Toolkit.getDefaultToolkit().getImage(Home.class.getResource("/Imagenes/p6.png")));
setTitle("Ventana Home - Cliente");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 499);
contentPane = new Fondo("/Imagenes/p4.jpg");
contentPane.setBackground(new Color(255, 255, 255));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

log=l;
JLabel lblNewLabel = new JLabel("Bienvenido : "+ l.getUser().toUpperCase());
lblNewLabel.setForeground(Color.WHITE);
lblNewLabel.setBackground(SystemColor.info);
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel.setBounds(165, 11, 398, 33);
lblNewLabel.setFont(new Font("Century", Font.PLAIN, 18));
contentPane.add(lblNewLabel);

JButton btnIniciarP = new JButton("Iniciar Partida");
btnIniciarP.setFont(new Font("Century", Font.PLAIN, 10));
btnIniciarP.setForeground(Color.WHITE);
btnIniciarP.setBackground(SystemColor.activeCaption);
btnIniciarP.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

if (IniciarPartida){
iniciarPartida();
}else{
JOptionPane.showMessageDialog(null, "No se puede iniciar una partida, Cierre Session y vuelva a Intentar.","Error", JOptionPane.ERROR_MESSAGE);
}

}
});
btnIniciarP.setBounds(15, 78, 111, 33);
contentPane.add(btnIniciarP);

JButton btnHistorial = new JButton("Historial");
btnHistorial.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// txtPanel.setText("No tiene Historial Registrado al Momento");
bd = new BaseDatos();
bd.consultarHistorial(textArea,log.getUser());

}
});
btnHistorial.setFont(new Font("Century", Font.PLAIN, 10));
btnHistorial.setForeground(SystemColor.info);
btnHistorial.setBackground(SystemColor.activeCaption);
btnHistorial.setBounds(15, 122, 111, 33);
contentPane.add(btnHistorial);

JButton btnCSesion = new JButton("Cerrar Sesión");
btnCSesion.setFont(new Font("Century", Font.PLAIN, 10));
btnCSesion.setForeground(Color.WHITE);
btnCSesion.setBackground(new Color(165, 42, 42));
btnCSesion.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
log.setVisible(true);
dispose();
}
});
btnCSesion.setBounds(15, 409, 111, 33);
contentPane.add(btnCSesion);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(165, 80, 398, 364);
contentPane.add(scrollPane);

textArea = new JTextArea();
textArea.setFont(new Font("Monospaced", Font.PLAIN, 14));
textArea.setForeground(Color.ORANGE);
textArea.setBackground(Color.BLACK);
scrollPane.setViewportView(textArea);
}

private void iniciarPartida(){

cliente = new ClientePacman(log.getSocket(),log.getSalidadato(),log.getEntradaDatos());
IniciarPartida=false;

}


}

Clase LoginCliente

package pacman;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.sql.ResultSet;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.EmptyBorder;

public class LoginCliente extends JFrame {

private JPanel contentPane;
private JTextField textID;
private JLabel lblNewLabel_1;
private JButton btnIniciarS;
private JLabel lblNewLabel_2;
private JButton btnSalir;
private JLabel lblNewLabel_3;
private HomeCliente ventanaHome;
private JPasswordField textPass;
private BaseDatos bd = null;
private ResultSet rs = null;
private JTextField Ip;
private Socket socket ;
private DataOutputStream salidadato ;
private DataInputStream entradaDatos;
private Thread hilo ;
private JLabel lVersion;


/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LoginCliente frame = new LoginCliente();
frame.setUndecorated(true);
frame.setLocationRelativeTo(frame);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public LoginCliente() {

/* Instancia la Base de Datos */

bd = new BaseDatos();

setIconImage(Toolkit.getDefaultToolkit().getImage(Login.class.getResource("/Imagenes/p6.png")));
setTitle("Juego");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 483, 312);
//contentPane = new JPanel();
contentPane = new Fondo("/Imagenes/p8.jpg");
contentPane.setBorder(new BevelBorder(BevelBorder.LOWERED, new Color(255, 255, 255), new Color(255, 255, 255), new Color(255, 255, 255), new Color(255, 255, 255)));
contentPane.setBackground(Color.BLACK);

contentPane.setForeground(new Color(255, 255, 255));
setContentPane(contentPane);
contentPane.setLayout(null);

textID = new JTextField();
textID.setFont(new Font("Tahoma", Font.PLAIN, 15));
textID.setHorizontalAlignment(SwingConstants.CENTER);
textID.setForeground(Color.WHITE);
textID.setBackground(Color.BLACK);
textID.setToolTipText("");
textID.setText("\r\n");
textID.setBounds(200, 117, 166, 26);
contentPane.add(textID);
textID.setColumns(10);

JLabel lblNewLabel = new JLabel("Usuario");
lblNewLabel.setBackground(Color.WHITE);
lblNewLabel.setForeground(Color.ORANGE);
lblNewLabel.setFont(new Font("Consolas", Font.BOLD, 19));
lblNewLabel.setBounds(63, 117, 97, 26);
contentPane.add(lblNewLabel);

lblNewLabel_1 = new JLabel("Contrase�a");
lblNewLabel_1.setBackground(Color.WHITE);
lblNewLabel_1.setForeground(Color.ORANGE);
lblNewLabel_1.setFont(new Font("Consolas", Font.BOLD, 19));
lblNewLabel_1.setBounds(38, 153, 109, 26);
contentPane.add(lblNewLabel_1);

btnIniciarS = new JButton("Iniciar Sesi�n");
btnIniciarS.setForeground(Color.WHITE);
btnIniciarS.setBackground(Color.DARK_GRAY);
btnIniciarS.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

/*
String id = textID.getText().trim();
String passwd = new String(textPass.getPassword());
if (id.isEmpty() || passwd.isEmpty())
JOptionPane.showMessageDialog(null, "Usuario/Contrase�a son nulos","ERROR", JOptionPane.ERROR_MESSAGE);
else{
establecerConexion();
salidaDato(id+" "+passwd);
//System.out.println("Enviado Usuario y Contrase�a: " + id );

if(esperaRespuestaServer().equals("0")){
lblNewLabel_3.setText("Credenciales Incorrectas");
lblNewLabel_3.setVisible(true);
}
else{*/
crearVentana();
/* }

}*/
}
});
btnIniciarS.setBounds(225, 192, 121, 23);
contentPane.add(btnIniciarS);

lblNewLabel_2 = new JLabel("Bienvenido al Pac-Man");
lblNewLabel_2.setForeground(new Color(255, 215, 0));
lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_2.setVerticalAlignment(SwingConstants.TOP);
lblNewLabel_2.setFont(new Font("Tahoma", Font.PLAIN, 18));
lblNewLabel_2.setBounds(118, 27, 322, 26);
contentPane.add(lblNewLabel_2);

btnSalir = new JButton("Salir");
btnSalir.setForeground(Color.RED);
btnSalir.setBackground(Color.BLACK);
btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
abreDialogoSalida();
}
});
btnSalir.setBounds(368, 260, 89, 23);
contentPane.add(btnSalir);

lblNewLabel_3 = new JLabel("Usuario/Contrase�a Incorrecto");
lblNewLabel_3.setFont(new Font("Tahoma", Font.PLAIN, 13));
lblNewLabel_3.setForeground(new Color(255, 69, 0));
lblNewLabel_3.setBounds(23, 238, 202, 14);
lblNewLabel_3.setVisible(false);
contentPane.add(lblNewLabel_3);

textPass = new JPasswordField();
textPass.setHorizontalAlignment(SwingConstants.CENTER);
textPass.setForeground(Color.YELLOW);
textPass.setBackground(Color.BLACK);
textPass.setBounds(200, 154, 166, 27);
contentPane.add(textPass);

JLabel lblNewLabel_4 = new JLabel("New label");
lblNewLabel_4.setIcon(new ImageIcon(Login.class.getResource("/Imagenes/picon.png")));
lblNewLabel_4.setBounds(407, 32, 33, 19);
contentPane.add(lblNewLabel_4);

JLabel textIP = new JLabel("IP");
textIP.setForeground(Color.ORANGE);
textIP.setFont(new Font("Consolas", Font.BOLD, 19));
textIP.setBackground(Color.WHITE);
textIP.setBounds(81, 80, 33, 26);
contentPane.add(textIP);

Ip = new JTextField();
Ip.setToolTipText("");
Ip.setText("127.0.0.1");
Ip.setHorizontalAlignment(SwingConstants.CENTER);
Ip.setForeground(Color.WHITE);
Ip.setFont(new Font("Tahoma", Font.PLAIN, 15));
Ip.setColumns(10);
Ip.setBackground(Color.BLACK);
Ip.setBounds(200, 80, 166, 26);
contentPane.add(Ip);

lVersion = new JLabel("V 1.10");
lVersion.setFont(new Font("Tahoma", Font.PLAIN, 9));
lVersion.setForeground(SystemColor.windowBorder);
lVersion.setBounds(424, 239, 33, 14);
contentPane.add(lVersion);

}

void abreDialogoSalida(){
int res = JOptionPane.showConfirmDialog(this, "Desea Salir ? ","Salida",JOptionPane.YES_NO_OPTION);
if (res==JOptionPane.YES_NO_OPTION)
System.exit(0);
}

public void crearVentana(){
ventanaHome= new HomeCliente(this);
//ventanaHome.setUndecorated(true);
ventanaHome.setLocationRelativeTo(ventanaHome);
ventanaHome.setVisible(true);
this.setVisible(false);
}

public String getUser(){
return textID.getText();
}

    private void salidaDato(String output){

try {
salidadato.writeUTF(output);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
   }
}
   
    private String esperaRespuestaServer(){

 String mensaje = null;
     boolean conectado = true;
     while (conectado) {
         try {
             mensaje = entradaDatos.readUTF();
             return mensaje;
         } catch (IOException ex) {
          System.out.println("Error al leer del stream de entrada de Login: " + ex.getMessage());
             conectado = false;
         } catch (NullPointerException ex) {
          System.out.println("El socket no se creo correctamente. ");
             conectado = false;
         }
     }
return mensaje;
}



public void establecerConexion(){

try {
         socket = new Socket(Ip.getText(),1234);
         salidadato = new DataOutputStream(socket.getOutputStream());
         entradaDatos = new DataInputStream(socket.getInputStream());
     } catch (UnknownHostException ex) {
      System.out.println("No se ha podido conectar con el servidor (" + ex.getMessage() + ").");
     } catch (IOException ex) {
      System.out.println("No se ha podido conectar con el servidor (" + ex.getMessage() + ").");
       lblNewLabel_3.setText("Network error: Connection refused");
       lblNewLabel_3.setVisible(true);
     }

}


public Socket getSocket() {
return socket;
}

public DataOutputStream getSalidadato() {
return salidadato;
}

public DataInputStream getEntradaDatos() {
return entradaDatos;
}
}

Clase Home

package pacman;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.TextArea;

import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.border.BevelBorder;
import javax.swing.border.TitledBorder;
import java.awt.List;
import javax.swing.DropMode;
import java.awt.SystemColor;
import javax.swing.UIManager;
import javax.swing.ImageIcon;
import javax.swing.JProgressBar;

public class Home extends JFrame {

private JPanel contentPane;
private static Login log;
private BaseDatos bd ;
private Partida partida;
private JTextArea textArea;
private List list;
private int iPartidas=1;
private JProgressBar progressBar;
private SevidorPacman servidor;



/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Home frame = new Home(log);
frame.setUndecorated(true);
frame.setLocationRelativeTo(frame);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Home(Login l) {
setIconImage(Toolkit.getDefaultToolkit().getImage(Home.class.getResource("/Imagenes/p6.png")));
setTitle("Ventana Home - Administrator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 657, 498);
contentPane = new Fondo("/Imagenes/p4.jpg");
contentPane.setBackground(new Color(255, 255, 255));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

log=l;
JLabel lblNewLabel = new JLabel("Bienvenido : "+ l.getUser().toUpperCase());
lblNewLabel.setForeground(Color.WHITE);
lblNewLabel.setBackground(SystemColor.info);
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel.setBounds(165, 11, 434, 33);
lblNewLabel.setFont(new Font("Century", Font.PLAIN, 18));
contentPane.add(lblNewLabel);

JButton btnIniciarP = new JButton("Iniciar Partida");
btnIniciarP.setFont(new Font("Century", Font.PLAIN, 10));
btnIniciarP.setForeground(Color.WHITE);
btnIniciarP.setBackground(SystemColor.activeCaption);
btnIniciarP.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

iniciarPartida();

}
});
btnIniciarP.setBounds(15, 78, 111, 33);
contentPane.add(btnIniciarP);

JButton btnCrearP = new JButton("Crear Partida");
btnCrearP.setFont(new Font("Century", Font.PLAIN, 10));
btnCrearP.setForeground(Color.WHITE);
btnCrearP.setBackground(SystemColor.activeCaption);
btnCrearP.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
crearPartida();
}

});
btnCrearP.setBounds(15, 122, 111, 33);
contentPane.add(btnCrearP);

JButton btnCSesion = new JButton("Cerrar Sesión");
btnCSesion.setFont(new Font("Century", Font.PLAIN, 10));
btnCSesion.setForeground(Color.WHITE);
btnCSesion.setBackground(new Color(165, 42, 42));
btnCSesion.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
log.setVisible(true);
dispose();
}
});
btnCSesion.setBounds(15, 416, 111, 33);
contentPane.add(btnCSesion);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(165, 181, 434, 268);
contentPane.add(scrollPane);

textArea = new JTextArea();
textArea.setFont(new Font("Monospaced", Font.PLAIN, 11));
textArea.setForeground(Color.ORANGE);
textArea.setBackground(Color.BLACK);
scrollPane.setViewportView(textArea);

list = new List();
list.setForeground(Color.ORANGE);
list.setFont(new Font("Lucida Console", Font.PLAIN, 14));
list.setBackground(Color.BLACK);
list.setBounds(165, 78, 434, 91);
contentPane.add(list);

JLabel lblNewLabel_1 = new JLabel("PARTIDAS EN CURSO");
lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_1.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblNewLabel_1.setForeground(Color.ORANGE);
lblNewLabel_1.setBackground(Color.BLACK);
lblNewLabel_1.setBounds(165, 49, 434, 23);
contentPane.add(lblNewLabel_1);

progressBar = new JProgressBar();
progressBar.setForeground(Color.ORANGE);
progressBar.setBounds(165, 167, 434, 14);
contentPane.add(progressBar);

servidor = new SevidorPacman(textArea);

JButton btnPpartida = new JButton("Frenar Partida");
btnPpartida.setVisible(false);
btnPpartida.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
servidor.stopServer();
iPartidas = 0;
list.removeAll();
textArea.setText(null);

}
});
btnPpartida.setForeground(SystemColor.text);
btnPpartida.setFont(new Font("Century", Font.PLAIN, 10));
btnPpartida.setBackground(SystemColor.inactiveCaptionText);
btnPpartida.setBounds(15, 166, 111, 33);
contentPane.add(btnPpartida);
}
private void crearPartida() {
progressBar.setValue(0);
//Modo dialog = new Modo(this);
//dialog.setLocationRelativeTo(this);
//dialog.setVisible(true);

servidor.startServer();

String auxiliar = ("Partida N° " + iPartidas + ": "  + log.getUser().toUpperCase());

iPartidas++;

list.add(auxiliar);

progressBar.setValue(100);
}

private void iniciarPartida(){

servidor.iniciarPartidaServidor();
}
}

Clase Login

package pacman;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import javax.swing.JButton;
import javax.swing.SwingConstants;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;
import javax.swing.border.BevelBorder;
import javax.swing.JPasswordField;
import javax.swing.border.LineBorder;
import javax.swing.border.MatteBorder;
import javax.swing.UIManager;
import javax.swing.ImageIcon;
import java.awt.SystemColor;

public class Login extends JFrame {

private JPanel contentPane;
private JTextField textID;
private JLabel lblNewLabel_1;
private JButton btnIniciarS;
private JButton btnReg;
private JLabel lblNewLabel_2;
private JButton btnSalir;
private JLabel lblNewLabel_3;
private Home ventanaHome;
private JPasswordField textPass;
private BaseDatos bd = null;
private ResultSet rs = null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login frame = new Login();
frame.setUndecorated(true);
frame.setLocationRelativeTo(frame);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Login() {

/* Instancia la Base de Datos */

bd = new BaseDatos();

setIconImage(Toolkit.getDefaultToolkit().getImage(Login.class.getResource("/Imagenes/p6.png")));
setTitle("Juego");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 553, 351);
//contentPane = new JPanel();
contentPane = new Fondo("/Imagenes/p2.jpg");
contentPane.setBorder(new BevelBorder(BevelBorder.LOWERED, new Color(255, 255, 255), new Color(255, 255, 255), new Color(255, 255, 255), new Color(255, 255, 255)));
contentPane.setBackground(Color.BLACK);

contentPane.setForeground(new Color(255, 255, 255));
setContentPane(contentPane);
contentPane.setLayout(null);

textID = new JTextField();
textID.setHorizontalAlignment(SwingConstants.LEFT);
textID.setForeground(Color.DARK_GRAY);
textID.setBackground(Color.WHITE);
textID.setToolTipText("");
textID.setText("\r\n");
textID.setBounds(200, 99, 233, 26);
contentPane.add(textID);
textID.setColumns(10);

JLabel lblNewLabel = new JLabel("Usuario");
lblNewLabel.setBackground(SystemColor.text);
lblNewLabel.setForeground(SystemColor.text);
lblNewLabel.setFont(new Font("Consolas", Font.BOLD, 19));
lblNewLabel.setBounds(63, 95, 97, 26);
contentPane.add(lblNewLabel);

lblNewLabel_1 = new JLabel("Contrase�a");
lblNewLabel_1.setBackground(Color.WHITE);
lblNewLabel_1.setForeground(SystemColor.text);
lblNewLabel_1.setFont(new Font("Consolas", Font.BOLD, 19));
lblNewLabel_1.setBounds(63, 152, 109, 26);
contentPane.add(lblNewLabel_1);

btnIniciarS = new JButton("Iniciar Sesi�n");
btnIniciarS.setForeground(Color.WHITE);
btnIniciarS.setBackground(Color.DARK_GRAY);
btnIniciarS.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

/*String id = textID.getText().trim();
String passwd = new String(textPass.getPassword());
if (id.isEmpty() || passwd.isEmpty())
JOptionPane.showMessageDialog(null, "Usuario/Contrase�a son nulos","ERROR", JOptionPane.ERROR_MESSAGE);
else{
if (id.equals("admin")){
if (bd.validaLoginUser(id, passwd)){
lblNewLabel_3.setVisible(false); */
crearVentana();
/* }
else{
lblNewLabel_3.setText("Credenciales Incorrectas");
lblNewLabel_3.setVisible(true);
}
}
else{
lblNewLabel_3.setText("Solo el User ADMIN puede Ingresar");
lblNewLabel_3.setVisible(true);
}
}*/
}
});
btnIniciarS.setBounds(200, 211, 122, 23);
contentPane.add(btnIniciarS);

btnReg = new JButton("Registrarse");
btnReg.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

String id = textID.getText().trim();
String passwd = new String(textPass.getPassword());

if (id.isEmpty() || passwd.isEmpty())
JOptionPane.showMessageDialog(null, "Usuario/Contrase�a son nulos","ERROR", JOptionPane.ERROR_MESSAGE);
else{
if (bd.validaRegistracion(id)){
lblNewLabel_3.setText("El Usuario Ingresado Ya Existe");
lblNewLabel_3.setVisible(true);

}
else{
bd.registrarse(id,passwd);
JOptionPane.showMessageDialog(null, "Se Genero el Usuario con Exito","Informacion", JOptionPane.INFORMATION_MESSAGE);
}
}

}
});
btnReg.setForeground(Color.WHITE);
btnReg.setBackground(Color.DARK_GRAY);
btnReg.setBounds(332, 211, 101, 23);
contentPane.add(btnReg);

lblNewLabel_2 = new JLabel("Bienvenido al Pac-Man");
lblNewLabel_2.setForeground(new Color(255, 215, 0));
lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_2.setVerticalAlignment(SwingConstants.TOP);
lblNewLabel_2.setFont(new Font("Tahoma", Font.PLAIN, 18));
lblNewLabel_2.setBounds(125, 27, 357, 26);
contentPane.add(lblNewLabel_2);

btnSalir = new JButton("Salir");
btnSalir.setForeground(Color.RED);
btnSalir.setBackground(Color.BLACK);
btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
abreDialogoSalida();
}
});
btnSalir.setBounds(438, 279, 89, 23);
contentPane.add(btnSalir);

lblNewLabel_3 = new JLabel("Usuario/Contrase�a Incorrecto");
lblNewLabel_3.setForeground(new Color(255, 69, 0));
lblNewLabel_3.setBounds(200, 283, 228, 14);
lblNewLabel_3.setVisible(false);
contentPane.add(lblNewLabel_3);

textPass = new JPasswordField();
textPass.setBounds(200, 156, 236, 27);
contentPane.add(textPass);

JLabel lblNewLabel_4 = new JLabel("New label");
lblNewLabel_4.setIcon(new ImageIcon(Login.class.getResource("/Imagenes/picon.png")));
lblNewLabel_4.setBounds(407, 32, 33, 19);
contentPane.add(lblNewLabel_4);

JLabel lversion = new JLabel("V 1.10");
lversion.setFont(new Font("Tahoma", Font.PLAIN, 9));
lversion.setForeground(SystemColor.windowBorder);
lversion.setBounds(494, 313, 33, 14);
contentPane.add(lversion);
}
void abreDialogoSalida(){
int res = JOptionPane.showConfirmDialog(this, "Desea Salir ? ","Salida",JOptionPane.YES_NO_OPTION);
if (res==JOptionPane.YES_NO_OPTION)
System.exit(0);
}

public void crearVentana(){
ventanaHome= new Home(this);
//ventanaHome.setUndecorated(true);
ventanaHome.setLocationRelativeTo(ventanaHome);
ventanaHome.setVisible(true);
this.setVisible(false);
}

public String getUser(){
return textID.getText();
}
}

Clase Partida

package pacman;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Color;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Partida extends JFrame{

private Home vpri;
private static Pantalla pantalla;
private Timer timer;
//static boolean superFantasma=false;

/**
* Launch the application.
*//*
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Partida ventana = new Partida(vpri);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
*/
/**
* Create the application.
*/
public Partida() {

//Home h
//vpri=h;

pantalla=new Pantalla();

}

/**
* Initialize the contents of the frame.
*/

public static Pantalla getPantalla(){
return pantalla;
}


public void iniciar() {

timer = new Timer();
   TimerTask task = new TimerTask() {
    int timeout = 0;
    int tiempoFantasmaVerde=0;
    int tiempoFantasmaCian=0;
    int tiempoFantasmaNaranja=0;
    int tiempoFantasmaAmarillo=0;
    int tiempoPacman=0;
       public void run()
       {
        /* DIRECCIONES:
        * 1 - DERECHA
        * 2 - ARRIBA
        * 3 - IZQUIERDA
        * 4 - ABAJO
        */
       
        try {
        if(tiempoPacman==0){
        movimientoJugador.controlar(1, pantalla);//CONTROL MOVIMIENTO PACMAN
        if(controlarColisionesJugadores.getTransformacion(1)==1)
        tiempoPacman = timeout+8000;
        }
        else{
        if(tiempoPacman<timeout){
        tiempoPacman=0;
        controlarColisionesJugadores.resetTransformacion(1);
        pantalla.superFantasma=false;
        }
        else{
        movimientoJugador.controlar(1, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
        if((timeout%20)==0 || timeout==0){//LOS FANTASMAS SE MUEVEN A LA MITAD DE LA VELOCIDAD DEL PACMAN
       
       
        try {
if(tiempoFantasmaVerde==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
movimientoJugador.controlar(2, pantalla);
        if(controlarColisionesJugadores.getColision(2)==1)
        tiempoFantasmaVerde = timeout+2000;
        else if(controlarColisionesJugadores.getTransformacion(2)==1)
        tiempoFantasmaVerde = timeout+8000;
        }
        else{
        if(tiempoFantasmaVerde<timeout){
        tiempoFantasmaVerde=0;
        controlarColisionesJugadores.setColision(2);
        controlarColisionesJugadores.resetTransformacion(2);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(2)==1)
        movimientoJugador.controlar(2, pantalla);
        }
        }

} catch (IOException e) {
e.printStackTrace();
}
       
       
        try {//CONTROL MOVIMIENTO Y TIEMPO DE ESPERA DEL FANTASMA CIAN
        if(tiempoFantasmaCian==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
        movimientoJugador.controlar(3, pantalla);
        if(controlarColisionesJugadores.getColision(3)==1)
        tiempoFantasmaCian=timeout+2000;
        else if(controlarColisionesJugadores.getTransformacion(3)==1)
        tiempoFantasmaCian = timeout+8000;
        }
        else{
        if(tiempoFantasmaCian<timeout){
        tiempoFantasmaCian=0;
        controlarColisionesJugadores.setColision(3);
        controlarColisionesJugadores.resetTransformacion(3);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(3)==1)
        movimientoJugador.controlar(3, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
       
       
        try {//CONTROL MOVIMIENTO Y TIEMPO DE ESPERA DEL FANTASMA NARANJA
        if(tiempoFantasmaNaranja==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
        movimientoJugador.controlar(4, pantalla);
        if(controlarColisionesJugadores.getColision(4)==1)
        tiempoFantasmaNaranja=timeout + 2000;
        else if(controlarColisionesJugadores.getTransformacion(4)==1)
        tiempoFantasmaNaranja = timeout+8000;
        }
        else{
        if(tiempoFantasmaNaranja<timeout){
        tiempoFantasmaNaranja=0;
        controlarColisionesJugadores.setColision(4);
        controlarColisionesJugadores.resetTransformacion(4);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(4)==1)
        movimientoJugador.controlar(4, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
       
       
        try {//CONTROL MOVIMIENTO Y TIEMPO DE ESPERA DEL FANTASMA AMARILLO
        if(tiempoFantasmaAmarillo==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
        movimientoJugador.controlar(5, pantalla);
        if(controlarColisionesJugadores.getColision(5)==1)
        tiempoFantasmaAmarillo=timeout + 2000;
        else if(controlarColisionesJugadores.getTransformacion(5)==1)
        tiempoFantasmaAmarillo = timeout+8000;
        }
        else{
        if(tiempoFantasmaAmarillo<timeout){
        tiempoFantasmaAmarillo=0;
        controlarColisionesJugadores.setColision(5);
        controlarColisionesJugadores.resetTransformacion(5);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(5)==1)
        movimientoJugador.controlar(5, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
        }
       
        timeout+=10;
       
        if (timeout >= 60000 || pantalla.comerBolitas(1)==0){
        timer.cancel();
       
        try {
ClienteServidor.enviarPuntajes();
} catch (IOException e) {
System.out.println("ERROR: no se pudo enviar el puntaje");
e.printStackTrace();
}
        }
       
       }
   };
   timer.scheduleAtFixedRate(task, 0, 10);//COMIENZA A EJECUTARSE EL TIMER, NO PARA NUNCA

}

}