Está en la página 1de 12

16/11/2014 Bloquear pantalla cliente | jc-Mouse.

net

JAVA, JAVA, PROYECTOS

Bloquear pantalla cliente


Creado por jc Mouse Lunes, marzo 18, 2013

En este tutorial crearemos una aplicación que


bloqueara toda la pantalla de la PC y no nos dejara
realizar ninguna tarea hasta introducir un USUARIO y
CONTRASEÑA. Lo que haremos sera crear un JFrame
sin bordes que cubra toda la pantalla, no se
deshabilitara el teclado ni el ratón pero para evitar la
combinación de teclas como WINDOWS + D o CTRL +
ALT + SUP, ALT+F4, TABS, etc que nos permiten
cerrar el programa o cambiar de foco, lo que haremos
sera ejecutar una tarea en paralelo que cambie las
propiedades de la aplicación a cada momento para
que nuestra aplicación este siempre al frente, para
esto java cuenta con ScheduledExecutorService.

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 1/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

Necesitamos

- IDE Netbeans 7.2

- Java

Tiempo: 15 minutos

Nivel: Intermedio

1.- Crea un nuevo proyecto llamado “blocked” sin el


MAIN class (*). Añade dos JFrame
“jFrameBlocked.java” y “jFrameGUI.java”,
finalmente añade una clase que se llamara
“jBlocked.java”.

2.- jFrameGUI.java

Este JFrame solo se mostrara una vez que se


desbloquee la pantalla, seria el equivalente a
nuestra aplicación principal. No agregaremos nada de
código solo un par de JLabels como muestra la
imagen de abajo.

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 2/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

3.- jFrameBlocked.java

Diseña este JFrame tal cual se ve en la imagen de


abajo, ten cuidado en colocar los nombres
que están marcados con un punto rojo, es
importante.

Esta JFrame es el que bloqueara toda la pantalla, por


el momento no escribiremos nada de código primero
debemos crear la clase “jBlocked.java“.

4.- jBlocked.java

Esta es la clase que una vez sea creada ejecutara una


tarea cada “N” tiempo, en este ejemplo sera cada 50
milisegundos lo que no da tiempo ni para usar la tecla
TABS y cambiar de aplicación o.O

El código de esta clase es sencillo ya que esta


reducido a una método para comenzar la tarea y otro
para cambiar las propiedades de un JFrame. Cada 50
milisegundos, se cambia la propiedad del JFrame para
maximizar la ventana
(JFrame.MAXIMIZED_BOTH), también se utiliza el
método toFront() para que el JFrame este siempre al
frente, esta combinación de métodos + el tiempo en
que son utilizados, impiden que una persona haga
http://www.jc-mouse.net/java/bloquear-pantalla-cliente 3/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

uso del escritorio.

El JFrame que sera pasado como parámetro en


el constructor de clase, corresponde a
JFrameBlocked.java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import javax.swing.JFrame;
/**
* @web http://www.jc-mouse.net/
* @author Mouse
*/
public class jBlocked {
private JFrame jframe=null;
/**
* Constructor de clase
*/
public jBlocked( JFrame f )
{
this.jframe = f;
} Principal Blog Youtube Acerca de…
/**
* ejecuta una tarea cada "n" tiempo
* Para evitar que el usuario utilice las teclas (WINDOWS + D)(TAB) y asi perder el fo
* de la aplicación, cada 50 milisegundos se envia el JFrame al frente y se cambia su
*/
public void block()
{
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecuto
scheduler.scheduleAtFixedRate(
new Runnable()
{
@Override
public void run() {
front();
}
}, 500, 50 , TimeUnit.MILLISECONDS ); //comienza dentro de 1/2 segundo y
}
/**
*
*/
public void front()
{
jframe.setExtendedState( JFrame.MAXIMIZED_BOTH );//maximizado
jframe.toFront();
}
}//--> fin

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 4/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

5.- Una vez que tenemos creado la clase jBlocked,


debemos implementarla en el
JFrame jFrameBlocked.

- Modificaremos el constructor de la siguiente


manera:
01 public jFrameBlocked() {
02
03 this.setUndecorated(true);//quita bordes a jframe
04
05 initComponents();
06
07 this.setDefaultCloseOperation( DO_NOTHING_ON_CLOSE );//evita cerra jframe
08 this.setExtendedState( MAXIMIZED_BOTH );//maximizado
09 this.setAlwaysOnTop(true);//siempre al frente
10 //nueva instancia de jBlocked pasando como parametros e este JFrame
11 new jBlocked( this ).block();
12
13 }

También debemos agregar los eventos para cuando


se presionen los botones ENTRAR o CANCELAR
01 private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) {
02 System.exit(0);
03 }
04
05 private void btnEntrarActionPerformed(java.awt.event.ActionEvent evt) {
06 if( this.user.getText().equals("user") && this.pass.getText().equals("1234"
07 {
08 new jFrameGUI().setVisible(true);
09 this.dispose();
10 }
11 else
12 {
13 JOptionPane.showMessageDialog( this, "Access denied");
14 }
15 }

Como puede verse se utiliza un IF para controlar su


los datos de ingreso son correctos o no, el usuario es
USER y el passwoord es 1234, si los datos son
incorrectos, muestra una ventana de error, caso
contrario, muestra nuestra aplicación y cierra el
JFrame de bloqueo.

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 5/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

Proyecto completo + Ejemplo HERE

(*) Cuando un proyecto creado en Netbeans no


cuenta con la clase Main, se debe indicar al IDE que
clase ejecutar primero, para esto se debe ir a
PROPIEDADES (properties), y en la opción RUN en
la sección que dice Main Class, buscar en el proyecto
la clase que hará de MAIN.

Codigo Fuente Descargas Ejercicios GUI


Java Netbeans Proyectos tutoriales

Si te ha gustado podrías compartirlo o dejar un


comentario. ¡Muchas gracias!

Sobre el autor y el sitio


web
Yo soy yo :) Mouse o como algunos de
ustedes me llaman 'El Cochinote', Soy
orgullosamente boliviano soy fundador y
CEO de la web jc-Mouse.net uno de las
pocas web en emprendimiento y
tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 6/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

completamente gratis siempre, puedes copiar, descargar y re-


publicar si así lo deseas en otros blogs o sitios web, solo te pido a
cambio que dejes una referencia a esta web. Esto nos ayuda a crecer
← Estilos
y seguir aportando. Bye
Efecto de explosión al
condicionales
Enjoy! :)
en abrir un JPanel →
iReport

ENTRADAS QUE TE PUEDEN INTERESAR

Conexión MySQL y C#
Comentarios (0) | ago 28, 2014

Blog MVC – Iniciando el proyecto [p2]


Comentarios (1) | jun 24, 2013

Crea tu JLabel con hipervinculo


Comentarios (5) | mar 9, 2013

Buscar dispositivos con Java Media


Framework
Comentarios (0) | jun 28, 2011

JCheckBox dentro JTable con Netbeans


Comentarios (16) | jul 9, 2012

Consultas con parámetros en Access y


Java
Comentarios (7) | feb 26, 2013

Empaquetar aplicación android para


su distribución
Comentarios (5) | sep 3, 2013

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 7/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

Sistema de gestión de stock – El


Controlador (Parte 5)
Comentarios (38) | sep 4, 2012

6 COMENTARIOS EN “BLOQUEAR
PANTALLA CLIENTE”

Jose Rios
18 MARZO, 2013 A LAS 20:31
mm.. interesante Gracias Amigo !!

RESPONDER

andree
18 MARZO, 2013 A LAS 20:48
muy buenazo, justo lo que estaba buscando

RESPONDER

elder monzon
19 MARZO, 2013 A LAS 1:03
excelente aporte como siempre

RESPONDER

MASAYA09
10 JULIO, 2013 A LAS 22:12
Muy buen tuto, me a servido para mi proyecto
de mysql con netbeans……….. compartido

RESPONDER

Miguel
15 JULIO, 2013 A LAS 15:08
muy bueno pero tengo una pregunta en la
pantalla azul no se puede colocar una imagen

RESPONDER

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 8/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

Mouse
16 JULIO, 2013 A LAS 1:29

claro que si campeón

RESPONDER

DEJA UN COMENTARIO

Tu dirección de correo electrónico no será publicada. Los campos


necesarios están marcados *

Nombre *

Correo electrónico *

Web

seis × = 18

Comentario

Puedes usar las siguientes etiquetas y atributos HTML: <a


href="" title=""> <abbr title=""> <acronym title=""> <b>
<blockquote cite=""> <cite> <code> <del datetime=""> <em>
<i> <q cite=""> <strike> <strong>

Publicar comentario

Buscar:

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 9/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

Palabra clave...

Buscar

Categorias
Elegir categoría

Nube de Etiquetas
Access Android
Animación

Base de Datos
C#

Codigo
Fuente
Componente Consola

Descargas
Eclipse Ejercicios
EXE Firebird GUI HTML5
Imagenes Info Util

instalador iReport Java


Java2D JavaScript JMF

jQuery jTable Juegos LibGDX

Look and Feel MVC


MySQL
Netbeans
Novatos PHP PostgreSQL

Proyectos Seguridad
SQLite Swing Tips
tutoriales
Videos Visual Basic
Visual Studio Web xml

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 10/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

Ultimas entradas
Problema Resuelto:
Personalizar JTable

PROBLEMA: Se tiene un JTable


con 19 columnas y 50 registros, se
desea personalizar el JTable de la
siguiente manera: - S...
Crea una libreria
TimeChooser –

En este post crearemos un


componente gráfico para java que
nos permitirá seleccionar la hora
del día de una manera senci...
Crea un TextBox estilo
Metro para java

En este tutorial personalizaremos


un JTextField java para darle la
apariencia de un TextBox de
Windows Metro. El TextBox...
Personaliza un
JComboBox estilo Metro

Si bien se pueden encontrar en


google estilos java (Look and Feel)
listos para cambiar la apariencia
de nuestras aplicac...
JLabel circular

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 11/12
16/11/2014 Bloquear pantalla cliente | jc-Mouse.net

En este post crearemos un swing


Label personalizado que tendrá la
forma circular en su borde, con
esto obtendremos un bo...

Últimos Comentarios

rudy en Paso de parámetros entre


dos Activity

javier en Crea una libreria


TimeChooser – Selector de Tiempo

DragShot en Crea una libreria


TimeChooser – Selector de Tiempo

Mouse en JTable editable con base


de datos

Mouse en Crea un Themes


WordPress con Netbeans –
Configuracion

Copyright © 2014 jc Mouse Technology. Todos los Derechos


Reservados.

http://www.jc-mouse.net/java/bloquear-pantalla-cliente 12/12

También podría gustarte