public Principal() {
		setResizable(false);
		setTitle("Soy Millonario?");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 411, 271);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		addWindowFocusListener(new WindowFocusListener() {


			public void windowGainedFocus(WindowEvent arg0) {
				// Cuando la ventana gana el foco (por ejemplo al cerrarse la ventana de login)
				// Le asignamos a validation el valor devuelto por el mtodo isLogin
				validation=controller.isLogin();
				// Si validation es true significa que el usuario ha iniciado sesin correctamente...
				if (validation==true) {
					// ...Por lo que llamamos a un mtodo para mostrar las opciones avanzadas
					botonesAvanzado();
				}
				if (egg == 10) {
					JOptionPane.showMessageDialog(null,"Has leido "+egg+" veces la ayuda, ya debes sabertela de memoria");
					egg=0;
				}
				if (egg2 == 10) {
					JOptionPane.showMessageDialog(null,"Has leido "+egg2+" veces la ayuda avanzada, quiz no seas un usuario tan avanzado...");
					egg2=0;
				}
			}
			public void windowLostFocus(WindowEvent arg0){

			}


		});

		// Prcticamente toda la clase son botones que invocan a otras ventanas que son las que llaman a mtodos
		JButton btnComprobarCupon = new JButton("Comprobar Cup\u00F3n");
		btnComprobarCupon.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					Premios frame = new Premios(1);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnComprobarCupon.setBounds(32, 11, 155, 23);
		contentPane.add(btnComprobarCupon);

		JButton btnBuscarFecha = new JButton("Buscar Fecha");
		btnBuscarFecha.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					Premios frame = new Premios(2);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnBuscarFecha.setBounds(220, 11, 155, 23);
		contentPane.add(btnBuscarFecha);

		JButton btnBuscarNumero = new JButton("Buscar N\u00FAmero");
		btnBuscarNumero.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					Premios frame = new Premios(3);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnBuscarNumero.setBounds(10, 45, 155, 23);
		contentPane.add(btnBuscarNumero);

		// Este botn es diferente porque llama a un mtodo directamente y es el mtodo el que
		// crea la ventana que muestra los resultados de la consulta
		// Esto se debe a que esta consulta no requiere pasarle ningn parmetro
		JButton btnTopPremios = new JButton("Top 5 Premios");
		btnTopPremios.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				controller.topPremios();
			}
		});
		btnTopPremios.setBounds(240, 45, 155, 23);
		contentPane.add(btnTopPremios);

		JButton btnCuantias = new JButton("Cuant\u00EDas Premios");
		btnCuantias.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					CuantiasPremios frame = new CuantiasPremios();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}			
			}
		});
		btnCuantias.setBounds(10, 79, 155, 23);
		contentPane.add(btnCuantias);

		// El boton de ayuda se muestra como una imagen en la podemos hacer click
		JButton btnAyuda = new JButton(new ImageIcon(Principal.class.getResource("/imagenes/help.png")));
		btnAyuda.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				egg++;
				try {
					Textos frame = new Textos(1);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}	
			}
		});
		btnAyuda.setBounds(187, 59, 32, 32);
		//Esto es para dejar el botn bonito
		btnAyuda.setBorder(BorderFactory.createEmptyBorder());
		btnAyuda.setContentAreaFilled(false);
		contentPane.add(btnAyuda);

		JButton btnRegistrarUsuario = new JButton("Registrar Usuario");
		btnRegistrarUsuario.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					RegistrarUsuario frame = new RegistrarUsuario();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnRegistrarUsuario.setBounds(240, 79, 155, 23);
		contentPane.add(btnRegistrarUsuario);

		btnOpcionesAvanzadas = new JButton("Opciones Avanzadas");
		btnOpcionesAvanzadas.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					Login dialog = new Login();
					dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
					dialog.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnOpcionesAvanzadas.setBounds(32, 113, 155, 23);
		contentPane.add(btnOpcionesAvanzadas);

		JButton btnRecuperarUsuario = new JButton("Recuperar Usuario");
		btnRecuperarUsuario.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					RecuperarUsuario dialog = new RecuperarUsuario();
					dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
					dialog.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnRecuperarUsuario.setBounds(220, 113, 155, 23);
		contentPane.add(btnRecuperarUsuario);

		// Aqu comienzan los botones que solo vern los usuarios registrados
		// Todos estos botones por defecto estn ocultos (setVisible a false)
		btnInsertarPremio = new JButton("Insertar Premio");
		btnInsertarPremio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					Premios frame = new Premios(4);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnInsertarPremio.setBounds(32, 175, 155, 23);
		btnInsertarPremio.setVisible(false);
		contentPane.add(btnInsertarPremio);

		btnBorrarPremio = new JButton("Borrar Premio");
		btnBorrarPremio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					BorrarPremio frame = new BorrarPremio();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnBorrarPremio.setBounds(32, 209, 155, 23);
		btnBorrarPremio.setVisible(false);
		contentPane.add(btnBorrarPremio);

		btnInsertarCuantia = new JButton("Insertar Cuant\u00EDa");
		btnInsertarCuantia.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					InsertarCuantia frame = new InsertarCuantia();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		btnInsertarCuantia.setBounds(220, 175, 155, 23);
		btnInsertarCuantia.setVisible(false);
		contentPane.add(btnInsertarCuantia);

		btnBorrarUsuario = new JButton("Borrar Usuarios");
		btnBorrarUsuario.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				try {
					BorrarUsuario frame = new BorrarUsuario();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}	
			}
		});
		btnBorrarUsuario.setBounds(220, 209, 155, 23);
		btnBorrarUsuario.setVisible(false);
		contentPane.add(btnBorrarUsuario);

		btnAyudaAvanzado = new JButton("Ayuda Avanzada");
		btnAyudaAvanzado.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				egg2++;
				try {
					Textos frame = new Textos(2);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}	
			}
		});
		btnAyudaAvanzado.setBounds(32, 147, 343, 23);
		btnAyudaAvanzado.setVisible(false);
		contentPane.add(btnAyudaAvanzado);
	}