Introduccion a Java2D – Primera parte
Febrero 2, 2008
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.
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);
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);
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.

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.
eso es todo por hoy saludos, cualquier duda consulten.
Trabajando con cadenas [JAVA]
Enero 26, 2008
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í.
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
Enero 4, 2008
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
Diciembre 24, 2007
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.
—
Instrucciones de Control [J2SE]
Diciembre 5, 2007
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
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 »
Control De Stock [VB]
Noviembre 4, 2007
Coleccion generica de objetos (Collection)
Septiembre 30, 2007
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.
Juegos Dinamicos – [Desarrollo en J2ME]
Septiembre 29, 2007
[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..




![Cadenas y caracteres en Java [tutorial]](http://exequielc.files.wordpress.com/2008/01/cadenas-y-caracteres-con-java.jpg)




