Introduccion a JAVA2D Parte I

En este primer tutorial introductor a la API Java2D  comenzaremos conociendo varias de las herramientas que nos ofrece java2D, el control de relleno de las figuras y selector de colores.

  • La clase Color contiene metodos y constantes para manipular los colores.
  • La clase Font contiene metodos y constantes para manejar tipos de letras.
  • La clase FontMetrics contiene metodos para obtener información sobre los tipos de tetras.
  • La clasePolygon contiene metodos para crear poligonos.
  • La clase Graphics contiene metodos para dibujar cadenas, lineas, rectangulos y demas figuras.

Introduccion java2D - Sistema de Coordenadas

La clase Component es la superclase para muchas de las clases en el paquete java.awt. El metodo paint de Component toma un objeto Graphics como argumento. El sistema pasa este objeto al metodo Saint cuando se requiere una operación de pintar (paint) para un componente.

            public void paint(Graphics g) 

El método paint nos suministra el contexto gráfico g, un objeto de la clase Graphics con el cual podemos dibujar en el área de trabajo del componente llamando desde dicho objeto g a las funciones definidas en la clase Graphics.

CONTROL DE COLORES

La clase Color declara los metodos y las constantes para manipular los colores en un programa de Java. A continuación se detallan algunos metodos de Graphics que son especificos para los colores.

public Color (int r,int g, int b)
            Crea un color basado en componentes rojo, verde y azul,  como enteros 0 a 255.

public Color (flota r, flota g, flota tb)
            Crea un color basado en componentes rojo, verde y azul,  como valores de punto flotante de 0.0 a 1.0.

public int getRed()
            Devuelve un valor entre 0 y 255 el cual representa el contenido rojo.

public int getGreen()
            Devuelve un valor entre 0 y 255 el cual representa el contenido verde.

public int getBlue()
            Devuelve un valor entre 0 y 255 el cual representa el contenido azul.

public Color getColor()
            Devuelve un valor entre 0 y 255 el cual representa el color actual.

public void setColor( Color c )
            Establece el color actual.

Para mostrar un mensaje, llamamos desde el objeto g a la función miembro drawString, el primer argumento es el string que deseamos mostrar, y los dos números indican las coordendas de la línea base del primer carácter.

g.drawString(“RGB actual: “+ g.getColor(),130,105);   

 Introduccion java2D - MostrarColor

                         << DESCARGAR CODIGO FUENTE >>

 

 Nuestro primer ejemplo nos muestra lo explicado hasta el momento, nos encontraremos con cuadro de dialogo que contiene 3 rectangulos rojo,verde y azul respectivamente y a su derecha su color en RGB.

SELECTOR DE COLORES

 El Paquete javax.swing proporciona el componente de la GUI JColorChooser  para permitir a los usuarios de la aplicación seleccionar colores.

En el siguiente ejemplo muestra como al oprimir un boton se dispara el evento JColorChooser el cual nos permitira por medio de una interface seleccionar el color, al oprimir aceptar en el cuadro de dialogo el color de fondo de la aplicación cambiara y nos informara por medio de un label su valor RGB.

             JColorChooser seleccionaColor = new JColorChooser();
            Color = seleccionarColor.showDialog(parent,titulo,color inicial);

Introduccion  Java2D - JColorChooser

 

                                            << DESCARGAR CODIGO FUENTE >>

 

 

Las expresiones regulares son una secuencia de caracteres y símbolos que definen un conjunto de cadenas.

Son útiles para validar la entrada y asegurar que los datos estén en un formato específico. Por ejemplo un código postal debe coincidir de 5 dígitos, un apellido debe comenzar con mayúscula, un número telefónico debe tener solo números y así.
La clase String proporciona varios métodos para realizar operaciones con expresiones regulares siendo la mas simple la expresión de concordancia.
El método matches recibe una cadena que especifica la expresión regular, y compara el contenido del objeto String que lo llama con la expresión regular. Devuelve un valor Bolean indicando si hubo concordancia o no.
Una expresión regular consiste de caracteres literales y símbolos especiales.

En la siguiente figura se muestran algunas clases predefinidas de caracteres que pueden usarse con las expresiones regulares.
Expresiones regulares - Clases predefinidas de caracteres

 

 

 

 

Una clase de carácter es una secuencia de escape que representa a un grupo de caracteres. Un carácter de palabra es cualquier carácter alfanumérico o guión bajo, un carácter de espacio en blanco es un espacio, tabulador, retorno de carro o nueva línea y un digito es cualquier carácter numérico.

Para explicar lo aprendido dejo una simple aplicación que consiste básicamente en un validador de entrada o Frame en donde el usuario ingresa los datos en el formulario y

Al hacer clic en aceptar, el programa comprueba que no haya campos vacíos, si no hay campos vacios el programa informara al usuario tal evento, si no hay campos vacíos se pasa a validar la entrada del usuario.

Se validara por ejemplo en el primer caso el Nombre (que es igual a la validación de apellido ) usando el patrón ( “[A-Z][a-zA-Z]*”) en este caso le estamos diciendo que la entrada para ser valida debe tener el primer carácter en mayúscula [A-Z] y que los siguientes caracteres pueden ser cualquier carácter tanto minúscula como mayúscula [a-zA-Z] con el asterisco final le estamos diciendo que los siguientes caracteres van a ser iguales a la expresión previamente indicada, ósea la expresión que esta entre corchetes directamente al lado izquierdo del asterisco. Finalmente se podría indicar si quisiera una validación mas sobre la cantidad mínima de caracteres esperados para que nunca ingresen nombres de 2 o 3 letras por poner un ejemplo así pues solo nombres de 4 letras o superiores podrán ser ingresados, quedaría algo asi..

(“[A-Z][a-zA-Z]*\\D{3}”))

Como ven se ha agregado el signo de escape ‘\’ seguido de la clase predefinida ‘\D’ y a su vez seguido de un numero entre corchetes que indica la cantidad mínima de caracteres del tipo previamente ingresado (en este caso [a-zA-Z]).

Aclarado este punto y para que quede claro voy a presentar el ejemplo de una validación típica de Nombre mostrando lo explicado hasta recién.

//si el formato del nombre es invalido mostramos el mensaje
if (!txtNombre.getText().matches(“[A-Z][a-zA-Z]*\\D{3}”))
JOptionPane.showMessageDialog(this,”Nombre invalido”);

Finalmente un programa como de costumbre a manera de ejemplo y aplicando todo lo previamente explicado.

Expresiones Regulares - Validador de Frames

 

<< Descargar Codigo Fuente >>

 

eso es todo por hoy saludos, cualquier duda consulten.

Trabajando con cadena de caracteres

Para obtener la longitud, número de caracteres que guarda un string se
llama a la función miembro length.

String letras = “La casa del lago, estaba vacía”;
int longitud= letras.length();

Localización de caracteres y subcadenas

Podemos conocer si un string comienza con un determinado prefijo, llamando al método startsWith,
que devuelve true o false, según que el string comience o no por dicho prefijo

            String letras = "La casa del lago, estaba vacía";             
	boolean resultado= letras.startsWith("La");

En este ejemplo la variable resultado tomará el valor true.
De modo similar, podemos saber si un string finaliza con un conjunto dado de caracteres,
mediante la función miembro endsWith.

            String letras = "La casa del lago, estaba vacía";
boolean resultado= letras.endsWith("vacía");

¿Como buscar un carácter o un conjunto de caracteres en una cadena

A continuación recorreremos los métodos indexOf y lastIndexOf que ofrece nuestra clase String,
para buscar un carácter o una cadena de letras que inicializaremos a continuación.
Si se quiere obtener la posición de la primera ocurrencia de la letra ‘a’, se usa la función indexOf.

   String letras = "La casa del lago, estaba vacía";
salida += "\n\n la quinta letra a esta en el índice  " + letras.indexOf('a');        

Si se quiere obtener la posición de la quinta ocurrencia de la letra ‘a’,
se usa la función indexOf de 2 argumentos“indexOf(‘a’,20) “ el primer argumento es la representación
entera del caráctery el segundo es el índice inicial por el que debe empezar a buscar.

	String letras = "La casa del lago, estaba vacía";	 
	salida += "\n\n la quinta letra a esta en el índice  " + letras.indexOf('a',20);        

Otra versión de indexOf busca la primera ocurrencia deun substring dentro del string.

        int valor=10;           // luego convertimos el número en string y se lo asignamos a un string 
	String dies = new String(String.valueOf(valor));
   	salida = "\n el valor de \"dies\" es:  " + dies.toString();

La clase String proporciona versiones de valueOf para convertir los datos primitivos: int, long, float, double.
Esta función se emplea mucho cuando programamos applets, por ejemplo, cuando queremos mostrar
el resultado de un cálculo en el área de trabajo de la ventana o en un control de edición.

Borrando espacios en blanco

Cuando introducimos caracteres en un control de edición a veces es inevitable que aparezcan
espacios ya sea al comienzo o al final. Para eliminar estos espacios tenemos la función miembro trim

            String str="  12 ";             String str1=str.trim();

Bueno para demostrar todo esto les dejo un programita muy sencillo aplicando lo explicado hasta aquí.

>>Descargar fuente.<<

Cadenas y caracteres en Java [tutorial]

Parodia [Death Note]

Enero 4, 2008

Esto es una parodia acerca de la serie Death Note. Si conocen la serie les va a agradar el video.

 Java versus PHP versus Ruby

BlogPulse es un sitio que se dedica a la búsqueda automática de “tendencias”, se pueden ver diferentes listados de tendencias de citas en la blogosfera, frases, sitios, autores, etc.

Esta tendencia es generada a partir de simples palabras clave y no excluye las referencias no deseadas como la de la isla de Java o de rubí de la joya. Tratar los datos con cautela.

Como buscar un arreglo ordenado mediante la búsqueda binaria


Si el arreglo esta ordenado, podemos utilizar la técnica de búsqueda binaria de alta velocidad.El algoritmo de búsqueda binaria elimina la mitad de los elementos que se van a buscar en el arreglo, después de cada comparación.El algoritmo localiza el elemento medio del arreglo y lo compara con la clave de búsqueda.

Si son iguales, la clave de búsqueda binaria reduce el problema a buscar en la mitad del arreglo ordenado. Si la clave de búsqueda es menor que el elemento medio del arreglo, se buscara en la primera mitad del arreglo; en caso contrario, se buscara en la segunda mitad. La búsqueda continua hasta que la clave de búsqueda sea igual al elemento medio de un subarreglo, o hasta que el subarreglo consista en un elemento que no sea igual a la clave de búsqueda.

En el peor de los casos, para buscar un arreglo ordenado de 1023 elementos se requerirán solamente 10 comparaciones si se utiliza una busqueda binaria. Al dividir varias veces 1024 ente 2 ( ya que de cada comparación se elimina la mitad del arreglo) se producen estos valores 512,256,128,64,32,16,8,4,2,1. El numero 1024 (2¹º) se divide entre solo 10 veces para obtener el valor de 1. La división entre 2 es equivalente a una comparación en el algoritmo de busqueda binaria. Por lo tanto, un arreglo de 1.048.676 (2²º) elementos requiere un máximo de 20 comparaciones para encontrar la clave y un arreglo de mil millones de elementos requiere un máximo de 30 comparaciones para encontrar la clave.

Para demostrar lo anteriormente explicado dejo un ejemplo practico como siempre, espero les sea de utilidad

Saludos a todos y felices fiestas. xD

————————————————————————————————–

 

Capturas del programa.

buscar un arreglo ordenado mediante la búsqueda binaria (scr1)

buscar un arreglo ordenado mediante la búsqueda binaria (scr2)

 

DESCARGAR EL FUENTE

 

 

 

Instrucciones de Control [J2SE]

A continuacion dejo 2 brevisimos ejemplos en donde se pone en practica instrucciones de repeticion for, do … while.
Y mostramos las sentencias break y continue.

Seleccion multiple Switch

selectormultiple1.jpg

Java Cuenta con la instruccion switch de seleccion multiple para realizar distintas accione, con base en los posibles valores de una variable o explresion entera. Cada accion se asocia con un valor integral constante ( valores tipo byte, short, int o char, y no long ) que la variable o expresion pueda asumir.
Echo esta breve aclaracion o explicacion pasamos a la parte practica.
Este sencillo Applet nos da a elegir previamente en una ventana o cuadro de dialogo el grafico a ilustrar , esto puede ser opcion 1 ,2 o 3 (linea, rectangulo o circulo respectivamente) una vez elegido esto mostramos en otra ventana el proceso.
Como veremos en el codigo, tenemos un metodo switch dentro de un metodo paint que es el encargado de dibujar las lineas,rectangulos u obalos, segun la opcion elegida.
sin mas preambulos mostramos el codigo.

 Read the rest of this entry »

Visual basic permite construir tambien colecciones genericas de objetos que podemos utiliza, por ejemplo, para seguir la pista de los objetos que creemos de una determinada clase, Para ello proporciona la clase generica Collection.

A diferencia de una matriz de objetos, una coleccion:

  • Utiliza menos memoria que una matriz.
  • Proporciona un acceso mas flexible a los miembros.
  • Proporciona metodos para añadir y borrar miembros.
  • Ajusta su tamalo automaticamente despues de añadir o borrar miembros.

Por ejemplo, el siguiente procedimiento crea una coleccion de objetos y almacena en ella los controles del formulario Form1, Para acceder a los controles de Form1 se utiliza la sentencia For Each…Next

'Declaracion a nivel del formulario
Public coleccion As New Collection   Private Sub Command1_Click()

 Dim Control As Control

 For Each Control In Form1.Controls

 	'Añadir el control a mi coleccion

		coleccion.Add Control

 Next Control

End Sub 

Una coleccion generica de objetos tiene las siguientes propiedades

  • Count > proporciona el numero de miembros de la coleccion
  • Add > premite añadir un miembro a la coleccion
  • Remove > permite eliminar un miembro de la coleccion
  • Item > que permite acceder a los miembros de la coleccion

El siguiente ejemplo nos permite aprender mas sobre las colecciones de objetos, en este caso trabajaremos con formularios, cómo se puede usar el método Add de un objeto de colección para mantener una lista de ventanas secundarias MDI creadas por el usuario. En este código se supone que existe un formulario llamado form1, cuya propiedad MDIChild es True y por supuesto un formulario principal que en este caso llamaremos Colecciones.

Esta aplicacion tendra la siguiente apariencia.

Read the rest of this entry »

[Desarrollo en J2ME] – 194x.

Hace tiempo me puse a investigar nuevas tecnologías, ahí encontré java, el mismo me brindaba todas las herramientas que necesitaba para desarrollar aplicaciones móviles, este pequeño desarrollo cuenta con una pantalla spashScreen(“loading”), una pantalla de bienvenida en donde iría el logo presentación del juego, y finalmente el juego, en este caso el juego en cuestión es un clásico 194x.
Le faltan varios detalles, pero lo dejo en disponibilidad de cualquiera que quiera modificarlo y mejorarlo, cualquier consulta que tengan con gusto responderé.

Cuando yo me inicie en esto no encontré por ningún lado los recursos que necesitaba para crearlo es por eso que me decidí a colaborar con aquellos que recién se inician en este mundo de j2me.

Para el desarrollo use NetBeans 5.5.1 el mismo cuenta con un emulador de la interfase de la aplicación.

Aquí dejo un par de imágenes de la aplicación..

Read the rest of this entry »