Ventanas transparentes en java

El presente post muestra un interesante articulo de como generar ventanas transparentes para darle una forma diferente a la típica ventana o Frame cuadrado que siempre empleamos en nuestra programación.

Aquí les pongo el link que muestra como realizar este tipo de programación pero sus ejemplos no funcionan correctamente así que voy a detallar el código modificado que he creado para poder entenderlo mejor mas adelante.. oops bueno aqui esta la url:

http://www.onjava.com/pub/a/onjava/excerpt/swinghks_hack41/index.html

Crear translucent y shaped windows, evitando el código nativo, con uso inteligente del screenshot

Una de los mas comúnmente pedidos de características de swing es las ventanas transparentes. también llamadas shaped windows, con ventanas que tienen porciones transparentes, permitiendo ver el background del Escritorio y otros programas atraves de ellas. Java no proporciona ninguna forma de crear ventanas transparentes sin hacer uso de la Interface Nativa Java (JNI) (aunque son plataforma nativa debería apoyar la transparencia muy bien), pero eso no va a detenernos. Nosotros podemos hacerlo usando una de mis técnicas favoritas, el screeshot o captura de pantalla. El proceso de imitar una ventana transparente es básicamente:

  1. Crear un screenshot antes de mostrar la ventana.
  2. Usar ese screenshot como fondo(background) de la ventana.
  3. Ajustar la posición el screenshot con la linea superior de la pantalla real, crea la ilusión de transparencia.

Esta el la parte fácil. La parte dificil es actualizar el screenshot cuando la ventana se mueve o cambia. To start off, crear una subclase JPanel que puede capturar la pantalla y dibujarla como el background. como se muestra en el ejemplo

Ejemplo:

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

public class TransparentBackground extends JComponent {
private JFrame frame;
private Image background;

public TransparentBackground(JFrame frame) {
this.frame = frame;
updateBackground( );
}

public void updateBackground( ) {
try {
Robot rbt = new Robot( );
Toolkit tk = Toolkit.getDefaultToolkit( );
Dimension dim = tk.getScreenSize( );
background = rbt.createScreenCapture(
new Rectangle(0,0,(int)dim.getWidth( ),
(int)dim.getHeight( )));
} catch (Exception ex) {
ex.printStackTrace( );
}
}
public void paintComponent(Graphics g) {
Point pos = this.getLocationOnScreen( );
Point offset = new Point(-pos.x,-pos.y);
g.drawImage(background,offset.x,offset.y,null);
}
public static void main(String[] args) {
JFrame frame = new JFrame(“Ventana Transparente”);
TransparentBackground bg = new TransparentBackground(frame);
bg.setLayout(new BorderLayout( ));
JButton button = new JButton(“Esto es un boton”);
bg.add(“North”,button);
JLabel label = new JLabel(“Esta es una etiqueta”);
bg.add(“South”,label);
frame.getContentPane( ).add(“Center”,bg);
frame.pack( );
frame.setSize(450,400);
frame.setVisible(true);
}
}

Ejecutalo funciona de forma interesante.

Espero les sea de utilidad !!!

Anuncios

Mi experiencia con Dios

Bueno para empezar este post voy a iniciarlo con una pequeña introducción de lo que es mi vida.

Soy una persona con algo mas de 30 años, tengo una familia de 6 hermanos, pertenezco a una comunidad catecumenal (5ta) que me he dado Dios.

Sagrada FamiliaMi experiencia con Dios empieza dando gloria de lo que el me ha regalado sin ser merecedor de aquello, puedo decir que tiene un plan perfecto de vida para mi… es necesario aclarar que no me creo mas que nadie porque sinceramente con la gracia de Dios me he llegado a conocer.. porque en realidad no me conocía(tenia un orgullo tan increíble que mis hermanos de comunidad me decían que siempre ando con mi ego.. osea nunca andaba solo.. jajajajaja y me creía lo mejor que había.. que equivocado !!!), con esto no quiero decir que soy un santo y que ya no peco .. lo hago pero me puedo reconocer y avergonzarme de ello pero es necesario mencionar que en mis fuerzas muchas veces lo intente y no lo pude lograr, solo con la gracia de Dios me he podido mantener.

Muchas de las veces llegamos a creer que Dios se ha equivocado con nuestra historia(nuestros padres, nuestra situación económica, nuestros hermanos) pero mas adelante nos daremos cuenta de que con esa historia somos mas felices y nos ha preservado de someternos a lo que es la soberbia y el orgullo… muchos de nosotros pensamos que el Dinero y la comodidad nos puede hacer felices.. en realidad se de un caso en el que no se ha dado esto:

“Conocí una persona que trabajo durante toda su vida.. le costo conseguir cada centavo para poder ofrecerle algo a la que seria su esposa, tenia algo así como 2 o 3 trabajos.. llego el día en que se caso y parecía ser feliz hasta que la ambición de apodero de su mujer y el maligno se metió en medio del matrimonio con sus celos dudas y desconfianza de el para con ella y todo se volvió un caos… en una discusión de todos los dias” .. entonces pregunto.. el dinero es felicidad ? que opinan Uds.

Hubo un día en que mi madre enfermo de muerte los médicos nos dijeron que estemos preparados para todo es entonces cuando hice lo que el rey David (el elegido de Dios), de rodillas y con lágrimas en los ojos me arrepentí de todo lo que había hecho con las bendiciones que Dios me había dado entre ellas el tener a mi madre y pude humillarme y ver como una película todos mis pecados en este tiempo de tribulación y aflicción pero esto no fue que quería simular lo que David hizo sino que de mi angustia y de arrepentimiento lo hice.. y creanme fue muy difícil… pero Dios me escucho y tuvo misericordia de mi y mi familia al devolverle la salud y a mi el poder acercarme a él y bendecirlo todos los dias.

“Misericordia Dios mio misericordia que mi alma se refugia en ti, me refugio a la sombra de tus alas hasta que pase el peligro”

“Bendigo a Dios al Dios altísimo a Dios que ha hecho tanto por mi”

Espero este testimonio de fé le sirva a alguien mas y tambien se que seré motivo de persecución por parte de mis amigos que no entienden o que están alejados de Dios.

Saludos.

Creative Commons License
Mi Experiencia con Dios by Darwin Betancourt is licensed under a Creative Commons Reconocimiento-No comercial-Sin obras derivadas 3.0 Ecuador License.

Convertir Jar a PRC

Una de las cosas que siempre nos provocan el querer explotar es que luego de haber programado y generado nuestro archivo .jar, nuestro primer midlet para el pda no podemos cargarlo, por lo cual nosotros deberíamos convertirlo en prc.

En fin existen dos formas de realizar este proceso

  • Con midp4palm
  • Con jar2prc.exe o jar2prc_w.exe

Depende que máquina virtual le hayamos instalado a nuestro pda.

  • MIDP.prc
  • J9JavaVMMidp20

Como puedes apreciar para cada uno existe un convertidor de jar a prc en el caso de jar2prc viene con el paquete completo de desarrollo Java_Tech_for_Garnet_WEME57-1 dentro de la carpeta tools.

Convertidor de prc

Explicare un poco los campos que contiene la interface de conversión.

El primer campo es JAD File or URL aqui este campo direccionaremos dondes hayamos copiado nuestro archivo .jad

Automáticamente luego de que hayamos cargado el .jad veremos que se autocompleta los campos restantes hasta el Version Number.

Podemos cargarle un icono a nuestro aplicación

Una parte importante es el id que le pongamos a nuestro midlet porque eso nos serviría mas adelante para futuras operaciones.

Finalmente presionamos el botón Generar PRC.

Como puedes observar es de fácil uso.

Saludos y suerte con la conversión.

Buscar una cadena recursivamente en Linux

Bueno el siguiente post es para cuando queremos buscar una cadena de texto dentro de una jerarquía de directorios y queremos listarlo por pantalla, este es un caso que se da frecuentemente cuando estamos configurando o monitoreando nuestro servidor y no recordamos donde estaba esa cadena que la tenemos en mente.

Pues bueno esto es algo que siempre utilizo para realizar esa operación:

grep -ir <parámetro de busqueda> <directorio>

Ejm:

buscamos “hola” dentro de todo nuestro directorio /home/miusuario/respaldo/

hacemos uso del comando grep de la siguiente manera, es decir con los siguientes parámetros:

    grep -ir “hola” *

El * se refiere que buscara en todos sus directorios y el parámetro r que lo hará recursivamente y la i nos especifica que haga caso omiso de distinciones del patrón que buscamos.

🙂

Saludos y buena suerte con tu búsqueda.

Convertir un archivo avi a DivX

Este post es para aquellos que quiere codificar su video avi pegándole subtitulos y poder verlos en windows con el codec de divx. Bueno para esto haremos uso de unos pasos sencillos utilizando el mencoder en nuestro preferido Linux. Espero les sirva y buen provecho con su codificación.

Cuando hacemos un file a nuestro archivo de video obtendremos sus parametros y podemos ver que tipo de archivo tenemos.

mencoder -of avi -ovc lavc -lavcopts vcodec=mpeg4 -oac copy <archivo.avi> -sub <archivo.sub|srt> -o <output.avi>

el parámetro que podemos observar como -of nos especifica la salida del archivo en este caso de tipo avi bueno lo mas importante y a lo que va enfocado este post es a tener un archivo de tipo de video DivX lo definimos en el parámetro que se refiere a vcodec en este caso para que nos procese ese tipo de video ponemos mpeg4 como lo indica el comando a ejecutarse arriba.

Saludos y disfruta de tu video DivX.

Tips para consultas MySQL

En el presente post voy a detallar algunos consultas que me sirvieron en su momento para obtener resultados de mi base de datos MySQL haciendo uso de las funciones propias del motor de BD y espero que les sirva a mas de uno de vosotros…. bueno bueno acabo con la palabreria y paso a explicar de que se tratan los ejemplos.

Los Funciones a utilizar en este post son:

CONCAT

DISTINCT

SUBSTRING

COUNT

Bueno los ejemplos van en seguida.

Caso 1.

Para cuando queremos concatenar o adherir un dato extra a un campo en nuestra tabla.

Ejm. id_campo1 = 160 pero queremos antecederle el 1 es decir id_campo1=1160 y así a todos los campos de la tabla (id_campo1 es de tipo varchar).

id Dato actual Dato Futuro
1 90 090
2 10 010

entonces ejecutamos UPDATE <tabla> set id_campo1=CONCAT(‘0’, id_campo1,);

Caso 2.

En este caso describiré como obtener parte de una cadena es decir un subtring

Ejm.

del campo (Hola) solo queremos obtener (ola)

id Dato actual Dato Futuro
1 Hola ola
2 Jala ala

entonces ejecutamos: SELECT substring(campo,2,4) from <tabla>;

Caso 3.
Conseguir de una lista de valores, algunos repetidos que se listen una sola vez

Ejm.

id Dato actual  
1 10  
1 20  
1 20  
1 30  

Y queremos obtener los siguientes valores

id Dato actual  
1 10  
2 20  

entonces ejecutamos SELECT DISTINCT(campo1) FROM <TABLA>

Caso 4.
Para cuando queremos conseguir los totales de un grupo de datos agrupados por su fecha

id Dato actual  
1 2008-02-02  
1 2008-02-02  
1 2008-02-03  
1 2008-02-04  

Y queremos obtener los siguientes valores

id Fecha total
1 2008-02-02 2
2 2008-02-03 1
2 2008-02-04 1

entonces ejecutamos: SELECT DINTINCT(fecha), COUNT(fecha) as total FROM <tabla> group by fecha;

En lo posterior ire aumentando algunas de las consultas que se me quedaron pendientes… datediff, timediff

Saludos y suerte con tus consultas. !!!!

Macros de Microsoft Office en OpenOffice

La Edición Novel OpenOffice anuncia el soporte de macros de Microsoft Office en su Suite.

“A diferencia de la edición estándar de OpenOffice.org, que desecha los macros de Microsoft Office, la edición Novell de OpenOffice.org preserva estos macros. Esto asegura que usuarios quienes colaboran con Microsoft Office mantendrán la integridad de sus documentos, y permitir la posibilidad de que estas características sean soportadas en las versiones futuras del producto.”

Mas detalles los puedes encontrar el la siguiente url:

http://www.novell.com/products/desktop/features/ooo.html

Actualizacion:

Ahora con el lanzamiento de OpenOffice 3.0 el cual provee soporte para los documentos con xml es decir los típicos docx y demas tambien viene el soporte para los macros lo he probado y funciona de manera increible ahora si como que definitivamente queda fuera de combate otros editores que tenian copado el mercado y sobre todo para todos aquellos  usuarios que tenian una dura resistencia al cambio.. el equipo de OpenOffice sigue trabajando hasta tenerlo al producto en satisfacción a todos los usuarios.

Saludos y espero te sirva de mucho este post.