domingo, diciembre 09, 2007

domingo, noviembre 25, 2007

La frase de la semana

Los domingos son días de reflexión. Siempre me tomo unos minutos antes de levantarme de la cama para reflexionar sobre lo que paso en la semana. El trabajo casi no me deja tiempo para pensar en otras cosas que no sea el programar. Pero aún así, no puedo evitar mi adictiva introspección.
Generalmente esos momentos que arrancan sonrisas y que me levantan de la cama con un salto, tienen rostro de mujer. Comienzo extrañando a quien el destino se encargo de alejar, y después con el primer cigarrillo del día, me pregunto como transcurrirán sus días, como correrá detrás de sus deberes. Recuerdo las cosas vividas, lo aprendido en el camino. Pero no puedo evitar pensar como rezará para que las cosas sucedan. Después me levanto de un salto y veo que es lo que el domingo trae para mí. Y mientras acomodo un poco mi departamento pienso en la semana.
Esta semana trajo demasiadas emociones, y momentos de decisión, he influenciado y me han influenciado, he enfrentado bifurcaciones. Por momentos siento que me salgo de control, que no puedo encontrar el camino y que la libertad se convierte en libertinaje y el coraje en temeridad. Y me siento mal por ello. Pero un amigo que casi no conozco, esos tipos de lentes y bondades en la piel, candidos, y plenos de la sabiduría que da la sensibilidad de corazón, se atrevió a hablarme al oído y decirme algo que es mas fácil escuchar y meditar cuando proviene de alguien a quien no conoces.
- No busques estar en equilibrio, ¡nunca lo vas a estar! –me dijo gritándome al oído para que lo pueda escuchar a pesar de la música fuerte.
- Siempre vas a vivir en el caos, en la búsqueda infinita, tu naturaleza es esa y debes aceptarla. – y luego se alejo unos pasos para ver como reaccionaba. Mi mirada busco en el suelo la reflexión.
- ¡Te felicito por la decisión que tomaste! A la larga será lo mejor.
Me quedo con sus palabras, me despido de la semana con la esperanza de haber dado un paso hacia mi bienestar y la nostalgia de las puertas cerradas en mi espalda.
Veamos que tiene el lunes para mí.

viernes, noviembre 09, 2007

Pasando Dias

Muchas cosas sucedieron desde la última vez que escribí. Mi mundo se puso de cabezas un par de veces, tal cual me gusta a mí.
Una mañana el trabajo llamo a mi puerta, de la mano de Gonzalo, que incentivado por un plan de remuneraciones, decidió aplicar por mi para el puesto de programador en EDS Córdoba. A las pocas horas me llamaron para una entrevista de trabajo. La verdad es que fue mi primera entrevista. Por que en mis anteriores trabajos jamás me habían entrevistado. De pantaloncito de vestir y camisa blanco ala, me presente para jugar un poco con algunos test de lógica y pensamiento transversal, código Java, y mi ingles algo empolvado. A los pocos días me llamaron con la noticia de que había sido seleccionado y es así como ya estoy cobrando mí primer sueldo y soy un chico EDS con tarjeta de seguridad y todo.
Me levanto todos los días a las siete de la mañana, para seleccionar la ropa que me voy a poner, darme una ducha, y tomar rumbo a la parada de colectivo, que me va a llevar hasta la empresa. Allí me encuentro con Joshua y Melani, mis dos profes de ingles con los cuales paso alrededor de unas cinco horas diarias hablando en ingles. Joshua un yanki sumamente divertido, y que esta empezando a cambiar mi forma de pensar de los mal llamados americanos, con respecto a su nivel cultural. Y Melani, su candida novia, con la cual recorrió medio mundo enseñando ingles. El no habla nada de español, pero sus bromas en ingles me hacen matar de la risa todos los días. Ella tiene un mejor español que yo. Además de ellos, en la parada, esta Lorena, una compañera de trabajo, que siempre llega con puntualidad británica, y a quien se podría decir que estoy debiendo mi permanencia en la empresa, por que es la que me motiva cuando mi humor perro se reniega. Me sirve el café cuando llego a la empresa y todavía tengo las sabanas pegadas en los ojos.
Por otro lado, conocí personas interesantísimas, y que me han enseñado un poco mas, personas como Pablo y su saxo, que en una noche de alcoholes y fiestas me enseño que no todos los jóvenes (yo soy joven, pero el lo es mas) aceptan sin resistirse las cosas cuando están mal. Porteño, policía, pero adoptado por la rioja. Si lo tienen de centinela en la cuadra de su casa lo van a reconocer, rubio y ojos claros, tiéndales una mano por que la verdad que su forma de pensar me sorprendió para la escueta edad que tiene.
Y por supuesto no me puedo olvida de Kari, con la cual nos cruzamos tangencialmente por la vida, pero de la cual saco mis mejores recuerdos, me enseño a que tengo que ser un poco mas ordenado, que tengo que intentar bailar algo, así que me estoy por inscribir en clases de tango para reflotar un viejo sueño que tenia. Me regalo muchas palabras que quedaran retumbando por un tiempo en mi mente, y me levanto en sus brazos para mostrarme el mundo del arte, con noches de luna.
Es así como hoy puedo irme a dormir, con una sonrisa en mis labios. Por que a pesar de que estoy solo, mi corazón esta lleno de toda la gente que me ama, me siento totalmente feliz, puedo decir al mundo que estoy preparado para mostrarle una faena más, la plaza esta llena y el publico aplaude, suelten al toro que van a ver mi mejor media verónica.

jueves, septiembre 06, 2007

Ventanas en Java II, Ventanas Internas, Frames Internos: JInternalFrame, JDesktopPane


Para Nai y Eve


Volvamos a repasar unos conceptos básicos sobre las ventanas en java. Tres son los tipos de ventas mas usadas en Java en lo que a Swing respecta.
Los JFrames comunes y corrientes. Que son esas ventas que se van creando en la barra de tareas si usas Windows.

JDialog que son ventanas, por lo general modales, en las cuales debe responder antes de continuar con las otras ventanas. Son ejemplos de dialogos, aquellas ventanas donde se nos solicita insertar la ubicación donde queremos guardar un archivo.
JInternalFrames
: Esta es una clase particular de ventanas. Las cuales se encuentran inmersas en una ventana padre, que hace las veces de escritorio. Actualmente la mayoría de las aplicaciones de escritorio, siguen este formato. Estas ventanas pueden ser minimizadas y expandidas dentro de los límites de la ventana padre.
En este pequeño tutorial veremos las JInternalFrames.

Creando un JInternalFrame

1er Paso: Crear el Frame Padre

El primer paso que debe realizar a la hora de trabajar con InternalFrames es crear la ventana que contendrá los internalFrames. Esta ventana ser padre de todas las demás es decir que el ciclo de vida de todas las ventanas internas se encontrara atada a esta.
Esta ventana padre, será un frame común y corriente.


public class FramePadre extends JFrame implements ActionListener{
JDesktopPane escritorio = new JDesktopPane();// escritorio de Trabajo
JMenuBar barra =new JMenuBar(); // barra de menu
JMenu menu =new JMenu("Archivo");
JMenuItem itemInterna =new JMenuItem("Internal Frame");
JMenuItem itemSalir =new JMenuItem("Salir");
public FramePadre() {
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
……
}
}

Como vemos extiende a JFrame e implementa la interfaz ActionListener, para captar los eventos de una barra de menú que ingresamos. En este tutorial no desarrollaré como crear una barra de menú, pues mi política es encarar cada cosa por separado, mas adelante lo realizare, pero si mostrare el código para poder realizarlo.
Además de ello podemos ver como declaramos una variable escritorio del tipo JDesktopPane, esto nos permitirá asignar una superficie de trabajo que delimitara a los internalFrames.
Dentro del constructor de la clase podemos llamar un método que creamos para ordenar la creación de la interfaz grafica, o directamente poner el siguiente código.

Dimension tamaño =Toolkit.getDefaultToolkit().getScreenSize();//de la pantalla
this.getContentPane().setLayout( null );
this.setBounds(0,0,tamaño.width,tamaño.height-30);
this.setTitle("Ejemplo Escritorio");
this.itemInterna.addActionListener(this);//para captar el evento en el ítem
this.itemSalir.addActionListener(this);//idem anterior
menu.add(this.itemInterna);//la menu le agregamos el item
menu.add(this.itemSalir);// idem anterior
this.barra.add(menu);// a la barra le agregamos el menu
this.setJMenuBar(barra);// al frame le agregamos la barra.
escritorio.setBackground(new Color(251,255,235));// un colorcito p escritorio
this.setContentPane(escritorio);// agregamos el escritorio al frame

Una vez terminado con esto, solo nos resta crear el método para captar los clic que realizara el usuario sobre cada uno de los ítems del menú. Es así como declaramos el método actionPerformed, impuesto por la interfaz ActionListener, e indicamos que realizar ante cada uno de los eventos de usuario.

public void actionPerformed(ActionEvent e){
if(e.getSource()==this.itemSalir){
this.salir();
}
if(e.getSource()==this.itemInterna){
FrameInterno interno =new FrameInterno("Ejemplo Frame Interno");
escritorio.add(interno);// Agregamos el frame al escritorio
try {
interno.setSelected(true);// Decimos que comience Enfocado
} catch (PropertyVetoException e) {}
}
}

Como vemos en el caso de que el usuario haga clic en el menú itemInterna se instancia un internalFrame y luego se lo agrega al escritorio. Finalmente decimos que se inicialice enfocado y capturamos la excepción.

2do Paso Crear un Internal Frame

Para crear nuestro frame interno, tenemos que crear una clase que herede de javax.swing.JInternalFrame:


public class FrameInterno extends JInternalFrame implements ActionListener{
…//components Swing, botones, label etc
public FrameInterno(String titulo) {
super(titulo,
true, //redimencionar
true, //cerrar
true,//maximizar
true);//minimizar
try{
interfazGrafica();
this.setVisible(true);
}
catch(Exception e){}
}
}
Como vemos podemos definir los botones que contendrá el frame en el ángulo superior derecho. Esto lo definimos pasándole como argumentos a la súper clase valores boléanos si queremos permitir eso.

Luego en el metodo interfazGrafica(), escribimos toda la interfaz que podría ser:


private void interfazGrafica() throws Exception {
this.getContentPane().setLayout(null);
this.setSize(new Dimension(311, 347));
btn_cerrar.setText("Cerrar");
btn_cerrar.setBounds(new Rectangle(180, 270, 110, 30));
jLabel1.setText("Este es Un Frame Interno");
jLabel1.setBounds(new Rectangle(30, 65, 255, 35));
jLabel1.setFont(new Font("Dialog", 1, 20));
jLabel1.setForeground(Color.blue);
this.btn_cerrar.addActionListener(this);
this.getContentPane().add(jLabel1, null);
this.getContentPane().add(btn_cerrar, null);
}

Y finalmente tenemos que hacer visible el frame con setVisible
Por ultimo debemos definir el método al cual nos obliga la interfaz ActionListener

public void actionPerformed(ActionEvent e){
if(e.getSource()==this.btn_cerrar){
this.setVisible(false);
}
}

Con esto ya tenemos un frame básico a partir del cual podemos empezar a jugar y agregarle componentes como botones y label o cualquier otra cosa que se les ocurra.
No dejen de ver que bueno que queda cuando minimizan un internalFrame!!

Saludos

lunes, septiembre 03, 2007

Confirmación y Alertas en Java: JOptioPane, showMessageDialog, showConfirmDialog, showInputDialog , showOptionDialog

La clase JOptionPane es una clase que hereda de JComponent. Ésta clase nos permitirá crear alertas o cuadros de diálogos simples para poder solicitar, o mostrar, información al usuario.
Los métodos que revisaremos en este pequeño tutorías serán:

  1. JOptionPane.showMessageDialog(…)
  2. JOptionPane.showConfirmDialog(….);
  3. JOptionPane.showInputDialog(…);
  4. JOptionPane.showOptionDialog(…);

Cada uno de estos métodos presenta una particularidad distinta pero todos ellos nos muestran una ventanita pop up que nos permitirá captar información del usuario.

  1. showMessageDialog

JOptionPane. showMessageDialog (Component componentePadre, Object mensaje, String titulo, int tipoDeMensaje)

Nos sirve para mostrar información, por ejemplo alguna alerta que queremos hacerle al usuario. Veamos cuales son los principales argumentos del método.
componentePadre: es por el ejemplo el Frame desde el cual lo llamamos. Si queremos lo podemos poner en null, que es mas o menos lo mismo.
Mensaje: es lo que queremos que diga el cuadro de dialogo.
Titulo: el titulo.
tipoDeMensaje: son constantes que le dirán a java que tipo de mensaje queremos mostrar. De acuerdo a esto seran los iconos que se mostraran en el cuadro de dialogo. Las opciones son

  • ERROR_MESSAGE
  • INFORMATION_MESSAGE
  • WARNING_MESSAGE
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE

Si quisiéramos mostrar un icono personalizado, podemos agregarlo al final como un argumento más.
Ejemplo:

JOptionPane.showMessageDialog(null,"Acceso Denegado","Error",
JOptionPane.ERROR_MESSAGE);

  1. showConfirmDialog

Éste método sirve para pedirle al usuario una confirmación. Por ejemplo una confirmación de salida del sistema

Int respuesta =JOptionPane. showMessageDialog (Component componentePadre, Object mensaje, String titulo, int tipoDeOpcion);

El anterior es la versión corta del los argumentos del método. La versión larga incluye el tipo de mensaje y el icono, por si queremos personalizarlo.
Los argumentos son idénticos a los del método anterior. Excepto por el tipo de opción, que es otra constante y los valores pueden ser:

  • DEFAULT_OPTION
  • YES_NO_OPTION
  • YES_NO_CANCEL_OPTION
  • OK_CANCEL_OPTION

Como vemos el método devuelve una un entero que nos permitirá captar cual es la opción elegida por el usuario. Los valores serán 0 para Si, 1 para No, 2 para Cancelar y -1 para el cierre de la ventana. Así podremos preguntar cual es el valor devuelto y realizar la acción que deseamos.
Ejemplo

int i =JOptionPane.showConfirmDialog(this,"¿Realmente Desea Salir de Hola Swing?","Confirmar Salida",JOptionPane.YES_NO_OPTION);
if(i= =0){
System.exit(0);
}

  1. ShowInputDialog

Este método nos muestra una ventana donde podremos insertar una String. Por ejemplo cuando queremos que el usuario inserte su nombre. La versión corta del método es

String respuesta = JOptionPane.showInputDialog(Object mensaje)

Este método devolverá una String para poderla utilizar después. La versión larga de los argumentos del método es similar a los anteriores.
Ejemplo:

String nombre =JOptionPane.showInputDialog("Inserte su Nombre");
this.lbl_nombre.setText(nombre);

También podemos crear un cuadro de dialogo que contenga un combo con las opciones predeterminadas que le queremos dar al usuario.
Ejem:

Object[] valoresPocibles = {"Pedro", "Juan", "Carlos" };
Object jefe = JOptionPane.showInputDialog(null,
"Seleccione cual es su Jefe Inmediato", "Seleccionar Jefe",
JOptionPane. QUESTION_MESSAGE, null,
valoresPocibles,
valoresPocibles[0]);
this.lbl_jefe.setText((String)jefe);

El array de valores posibles nos muestra en un combo cuales serán los jefes que podemos mostrar. El último argumento del método nos muestra cual será la opción seleccionada por defecto

showOptionDialog

Con este método podemos crear cuadros de diálogos con botones personalizados. Esta bueno para darle un toque personal a los cuadros de dialogo
El método tiene la forma:

Int res = JOptionPane.showOptionDialog(Component componentePadre, Object mensaje, String titulo, int tipoDeOpcion, int tipoMensaje, Icon icono, Object[] botones, Object botonDefault)

Aquí lo único que varia con el resto es el array de botones que vamos a tener, debemos destacar que no hace falta que creemos botones, solo tenemos que poner cual será el texto que saldrá en el.

Object[] botones = {"Si dale va a estar bueno", "No?... buuu" };
int i=JOptionPane.showOptionDialog(null, "¿Queres salir a Bailar esta Noche?", "Sita",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null, botones, botones[0]);
System.out.println(i);

Después podemos tomar la respuesta como lo hacíamos con el confirmDialog.
Bueno hasta la próxima, esto es lo más importante en los mensajes o alertas.

miércoles, agosto 29, 2007

Ventanas en Java I: JFrame, propiedades, centrar, confirmar al cerrar, eventos


La primera distinción que debemos hacer entre las ventas que vamos a realizar es si las mismas son modales o no. Las modales son aquellas ventas que si o si deben tener una respuesta del usuario antes de continuar, como por ejemplo aquellas ventanas donde se nos pide que confirmemos si queremos guardar un archivo o no. Todas las demás ventanas son no modales.
En estos pequeños tutóriales, voy a desarrollar JFrames, IInternalFrames y JDialog
En el caso de las JFrame las mismas son no modales.

1. JFrame

Para comenzar a crear un JFrame tenemos que crear una ventana que extienda la clase JFrame e implemente la interfaz ActionListener que nos permitirá captar los eventos de los usuarios sobre los componentes Swing que vamos a utilizar (el botón).

public class FrameInicial extends JFrame implements ActionListener{

//variables globales en este caso Irán todos los componentes swing
//Constructor de la case
//Métodos

}

Debemos recordar que siempre que implementemos la interfaz AL deberemos declarar el método actionPerformed(AcrionEvente evento)
El constructor de la clase tendrá la forma:

public FrameInicial() {
try {
metodoSiguiente();
// aquí vamos a poner las propiedades y componentes
this.centrar();
//método mió para centrar
/*confirmacion de salida*/
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
confirmarSalida();
}
});
this.setVisible(true);
//hacemos visible el frame
}
catch (Exception e) {
e.printStackTrace();
}
}

El metodoSiguiente() es un método que cree para ordenar todas las propiedades y los componentes que contendrá nuestra ventana.
Centrar() es un método que nos permitirá centrar la ventana de acuerdo a la resolución que tenga nuestro monitor. Por defecto en java todas las ventanas aparecen en el extremo superior izquierdo.
En cuanto a solicitar una confirmación a la hora de salir lo primero que tenemos que indicar es que la ventana no va a realiza ninguna acción cuando se da el evento de cierre, si esto no se especifica, la ventana sale directamente sin realizar ninguna acción. Esto es en el caso en que tenemos un frame que es el principal de nuestra aplicación y queremos pedirle al usuario que confirme la salida cuando hizo clic en la crucecita del frame.
Lo hacemos con el metodo:

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)

confirmarSalida() será el método que pregunte si deseamos salir o no.
Finalmente debemos hacer visible el frame con el método setVisible(true).

1.1 metodoSiguiente()

En este caso vamos a agregarle al frame una label y un botón para cerrar, a medida que vallamos avanzando en los distintos frames voy a ir agregando distintos componentes.
Es una buena costumbre nombrar a los componentes de forma representativa.
Por ejemplo las etiquetas pueden comenzar con lbl_nombre o los botones con btn_nombre, etc. Ya que cuando nuestra aplicación crezca se puede hacer complicado si no tenemos nombre representativos. Otra aclaración es que los componente ya fueron declarados e inicializados globalmente en la case.

private void metodoSiguiente() throws Exception {
this.getContentPane().setLayout( null );//la forma de organizar los componentes
this.setSize(new Dimension(385, 300));
//el tamaño de la ventana
this.setTitle("Hola Swing");
//el titulo
btn_cerrar.setText("Cerrar");
//el boton cerrar
btn_cerrar.setBounds(new Rectangle(250, 220, 120, 25));//tamaño del botón
lbl_hola.setText("Hola Swing");//lo que la etiqueta dirá
lbl_hola.setBounds(new Rectangle(135, 80, 120, 35));//el tamaño de la etiqueta
lbl_hola.setToolTipText("texto emerguente");
//texto mouse por arriba
lbl_hola.setFont(new Font("Dialog", 1, 20));
//la fuente de la etiqueta
lbl_hola.setForeground(Color.red);
//color de la etiqueta
this.btn_cerrar.addActionListener(this);
//para escuchar los eventos.
this.getContentPane().add(lbl_hola, null);//pegar los components en el frame
this.getContentPane().add(btn_cerrar, null);
}


El setLayout es la forma en la que organizamos los componentes dentro del frame, esto nos servirá para cuando el frame cambie de tamaño o se maximice los componentes mantengan un aspecto armónico. Es todo un tema los distintos tipos de layout que existen en java.
El size o tamaño del componente es importante a la hora de centrar el frame en la pantalla, ya que lo utilizaremos para calcular la ubicación en la que debe estar. Se pasa como parámetro un objeto dimensión con los valores del (ancho, alto).
El titulo (setTitle) es el texto que aparecerá en la parte superior del frame, ademas cuando lo minimicemos aparecerá en la barra de herramientas de Windows (o superior)
En el caso del btn_cerrar le diremos cual será el texto con contendrá con setText, el tamaño y la ubicación con el método setBounds que recibe como parámetro un objeto Rectangle con parámetros que indican las coordenadas y tamaño. Los dos primeros son las coordenadas en x e y desde el margen superior izquierdo del frame, y los dos restantes son el tamaño en ancho y alto.
En cuanto a la etiqueta lbl_hola podemos definir que dirá con setText, la ubicación y tamaño con setBounds, y lo que dira cuando pasemos con el Mouse por arriba con setToolTipText, esta misma propiedad puede ser aplicada a otro componentes swing para ir guiando al usuario. Además de ello podemos indicarle cual sera la fuente que la etiqueta tendrá con setFont que recibe como parámetro un objeto del tipo Font que indica (el nombre de la fuente, normal/negrita/itálica, tamaño). Finalmente podemos indicarle el color que tendrá el texto con setForeground que recibirá como parámetro una constante que indique el color o un objeto Color con parámetros (R,G,B).
componente.addActionListener(this) es el método que permite agregar un oyente de eventos a un componente que tendremos dentro del frame. En este caso se lo agregaremos al botón de cerrar por que nos interesa saber cuando el usuario hace un clic en el. Decimos que el parámetro será el frame que creamos por que ya hemos implementado la interfaz ActionListener en el frame si no tendríamos que crearla como lo hicimos en el caso de la ventana.
Bien… ya hemos creado todos los componentes que el frame tendra, ahora tenemos que pegarlos en frame, si no, no serán visibles, esto los haremos con el método add(componete), que tiene como parámetros ya sea el componente solo, o el componente con su correspondiente layout.

Nota: a estas alturas, los que recién comienzan dirán es un kilombo total crear interfaces graficas en Java, pero no se asusten, los entornos de desarrollo tienen sus propias herramientas para crear esto arrastrando y soltando. ¡Es más! este ejemplo fue creado de esa forma. La finalidad es que sepamos que hace cada cosa.

1.2 El método Centrar()

Al igual que el método anterior, éste es un método creado por mí para centrar las ventanas. Como idea se puede crear una clase con el método implementado y después heredarla en otras clases, en fin… son solo idas.

private void centrar(){
Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frame =this.getSize();
setLocation((pantalla.width/2-(frame.width/2)),pantalla.height/2-(frame.height/2));
}

Lo primero que realiza el método es tomar la resolución de la pantalla, primero obtiene el toolkit por defecto y después el resolución de la pantalla.
Después el tamaño que le dimo al frame con getSize()
Y finalmente le indicamos la localización del frame en la pantalla con el método setLocation(int x, int y)

1.3 El método confirmarSalida()

A este método lo podremos llamar tanto desde el botón cerrar de la ventana misma como de un botón creado por nosotros mismos. La llamada al método se realizará en los métodos que las interfaces que escuchan los eventos de usuario, en el caso de la ventana es windowClosing(WindowEvent e), y en el caso del botón es actionPerformed(ActionEvent e).

private void confirmarSalida(){
int i =JOptionPane.showConfirmDialog(this,"¿Realmente Desea Salir de Hola Swing?","Confirmar Salida",JOptionPane.YES_NO_OPTION);
if(i==0){
System.exit(0);
}
}

Bien acá hay algo interesante relacionado a las ventanas. JOptionPane es una clase que nos permite hacer cuadros de diálogos. En el caso del método showConfirmDialog nos devolverá un entero con el valor de la elección del usuario. (En este caso 0 para si, 1 para no). Veremos más opciones cuando trate diálogos en Java.
El método exit(int status) de la clase System nos permitirá cerrar nuestra aplicación.
Debemos distinguirlos del método JFrame.setVisible(boolean visibilidad) del frame que nos permite cerrar la ventana sin salir de la aplicación.

1.1 El método actionPerformed(ActionEvent evento)

Este método nos permitirá captar los eventos realizados por el usuario sobre algún componente swing, en nuestro caso será el botón.

public void actionPerformed(ActionEvent e){
if(e.getSource()==this.btn_cerrar){
confirmarSalida();
}
}

Lo primero que realizamos dentro del método es preguntar cual es la fuente del evento, esto lo hacemos en caso de que tengamos varios botones a los cuales le asignamos el oyente de eventos. Si la fuente del evento es el botón cerrar, llamamos el método confirmar salida.

1.2 La clase Principal

Es una buena costumbre tener una clase que contenga el método main y desde la cual llamar al formulario de entrada a la aplicación.

public class Principal {
public Principal() {
FrameInicial f =new FrameInicial();
}
public static void main(String[] args) {
Principal principal = new Principal();
}
}

martes, agosto 28, 2007

Iniciando Java

Hablando con amigos que recién se estaban iniciando en java me preguntaban como podían hacer interfaces graficas en Java, como podían bajar lo que habían teorizado en las aulas a la programación neta.
Un buen comienzo, es empezar en las UI tipo Swing o AWT, algunos pensaban que este tipo de paradigmas se estaban olvidando frente a las interfaces WEB, pero JSF nos vuelve a remontar a la captación de los eventos realizados por el usuario.
La estructura de estos post vendrán dados como si construyéramos una aplicación, no me animaría a decir que seguiré el modelo MVC (modelo-Vista-Control) pero si a que definiré los aspectos mas importantes.
Otro aspecto a tener en cuenta el IDE o entorno de desarrollo que vamos a utilizar, ya que éste nos permitirá ahorrarnos un buen trabajo. En mi caso, pero no quiero decir que sea el mejor, utilizaré JDeveloper.

miércoles, agosto 22, 2007

I say a little prayer for you

Gracias princesa, estuve escuchando la canción que me dedicaste. Y quiero decirte que yo también en cada momento del día elevo un plagaría por ti. Que siempre me pregunto como marchara tu vida, como caminaran tus sueños y cuanto estarás creciendo.
Un beso eterno.

sábado, agosto 11, 2007

Gracias

Muchas veces me pregunte el por que. Por que dejaba todo lo que amaba, por que cambiaba una vida perfecta, por que me tenia que sentir solo, por que la resignación de todo lo que me hacía feliz. Me preguntaba por que levantarme cuando estaba enfermo, por que el frió cuando estas en medio del calido amor de unos brazos. Por que acostarse temprano, por que no dormir cuando tus parpados ya se durmieron. Por que volver sin mirar a tras. Por que quedarse cuando todo el mundo sale, por que la ausencia en fechas importantes. ¿Por que?
Por que soy un cazador de mariposas. Por que vivo transitando sueños. No es el destino, es el viaje, es el transitar, es el motor que me impulsa, es la meca de un sueño que me guía y que nace en lo más profundo de mi alma.
Hoy me doy cuenta, que nada de esto hubiera sido posible en soledad. Y agradezco a todas aquellas personas, compañeras de camino, que me encontraban sentado y llorando contra un árbol, rendido. A aquellos seres de luz que con su concejo y amor, me levantaban, me daban fuerza y me recordaban por que debía seguir caminando. Todos ustedes representan mi pequeño mundo, mis sueños, mis amores, mis afectos. Representan ese bocado dulce de mi vida.
Gracias por haber creído en mí cuando era difícil, gracias por su concejo, ánimo, e infinito amor.
Ariel Díaz Molina
Analista Universitario de Sistemas

martes, julio 31, 2007

Simpsonizate


En el noticiero escuche de una pagina en la cual podes subir tu foto para transoformarte en un personaje de los Simpson, asi que subi la mía y algo asi quedo (yo le agregue el fondo).
Si queres hacer la prueba con una tuya la pagina es www.simpsonizeme.com

domingo, julio 29, 2007

“Que mi vida te resulte increíble, no significa que no haya sido verdad, solo significa que la tuya no lo ha sido tanto”

lunes, julio 23, 2007

Dia del Amigo

El día del amigo, llegó y se fué. El celular empezó a sonar desde las cero horas, con el clásico: “quiero ser la primera personas en saludarte”. Eso esta bueno, el saber que hay del otro lado personas que piensan en ti, aún cuando la distancia y los distintos rumbos, llevan a no verse seguido. Si fue especial? Si, mucha gente que hace un tiempo que no veía se acordó. Además recibí la visita de un primo de Catamarca, con el salimos. El rally comenzó a la una de la mañana donde nos alistamos para salir, y fuimos a un departamento de unas amigas, de amigos, ahí tomamos algo para calentar motores, nos juntamos con los sospechosos de siempre. Entre charlas de vida, bailes improvisados, y conocernos un poco mas, las horas se pasaron. Como a las cinco, picamos al clásico billy bud del uru. Donde nos bailaos la vida, y nos encontramos con más amigos.
Como a las siete de la mañana cuerpito, estaba decidido a depositarme en mi departamento, pero como buen político sabia que botones apretar.
- Comamos un asado! – lo desafié.
Sabia que el tenia que responder con un si, por que me debía un asado mañanero, al cual me había llevado encañonado con una revista.
- A que no sos culo de comerte un asado! – insistí
- ¡A que si! –me dijo mientras el duna zapateaba en medio de la calle.
Así es como terminamos en la casa de cuerpito, el Nico, la Nai, Cuerpito, Yerin y yo. Para matar el tiempo, hasta que las primeras carnes cayeran en las góndolas, cuerpito, mostró sus dotes de baterista, mientras yo hacia las veces de primera voz de la banda en el karaoque. Siempre en las mañanas de borrachera se me da por adquirir una nueva Skill, una mañana me pasé cuatro horas intentando aprender a usar los palitos chinos y termine al mediodía atrapando moscas como Miyagi Sensei . Bueno esta vez, fue la batería, no tuve tanta suerte pero confieso que un par de acordes saque.
El asado al final se transformo en fajitas, en cuya elaboración participo todo el mundo. Los factores de riesgos se dispararon por las nueves cuando intentamos picar las verduras con los afiladisisimos cuchillos de cuerpiz. Cada corte insumia una profunda concentración ya que el alcohol y la trasnochada nos producían una momentánea discapacidad motora.
Como a las dos fue hora de marcharse cada uno a su casa, y tras profundos y emotivos abrazos borrachos el grupete fue separándose.

viernes, julio 13, 2007

Aire - Estelares

Necesitaba huir de Córdoba, necesitaba un poco de aire fresco. La vida para mi solo se manifiesta en el movimiento, es por eso que amo las noches de ruta, los horizontes, los árboles y postes a contramano.
Mi celu buscó compañero de aventuras y cuerpito se sumo. Let’s go to ride. Nos aprovisionamos en una estación de servicio, el frió calaba los huesos, pero a nosotros no nos importo y pusimos proa a Carlos Paz mientras Nadia, cebaba unos fernet con precisión quirúrgica. Ruta, Fernet y Estelares

lunes, julio 09, 2007

Stay hungry, Stay foolish

En estos días he dudado de mí. Quizás por que las líneas que me marcaban el camino se presentaban borrosas y las señales al costado de mi ruta se ocultaban entre arbustos de complicaciones. Me he preguntado un millón de veces el valor de las cosas, cuan valiosas serán realimente los frutos de mis esfuerzos.
Y solo una frase vino a mi mente stay hungry, stay foolish, y todo se resuelve rapidamente.


viernes, abril 27, 2007

Misión ad prometeo

"Llevar el fuego de las nuevas tecnologías hasta aquellas empresas que sientan la necesidad de transmitir sus ideas y desafíos a un mundo globalizado, desarrollando sitios Web de vanguardia con creatividad e innovación".

domingo, abril 22, 2007

Adios Shei


Tu alma llenó las nuestras, llegaste cuando aún llorábamos, y ahora nos estamos despidiendo, se que en algún lado nos encontraremos, tu correrás por aquellos prados con los cuales soñabas cuando movías tus patitas en las siestas de otoño, yo correré por los míos. Amiga, tu lengua no solo curó tus heridas, tus patas no solo caminaron tu camino, tu compañía fue un regalo que dios nos dejo al umbral. Aún puedo vernos, fuiste mi almohada y yo fui le tuya, cuando descansábamos en manada. Nos cuidaste, nos protegiste, nos amaste.
Nos veremos del otro lado compañera, se que me esperarás al lado de la puerta, como lo hacías en las madrugadas en las que volvía al hogar desde las lejanías. Ahí correremos y nos tiraremos al suelo para mordisquearnos, para saltar, ya sin las limitaciones que tu enfermedad y el tiempo, se encargaron de imponerte. Ahora fue tu tiempo, para el nuestro resta, pero sé que ahí estarás guardiana de nuestro corazón.
Hasta siempre hermosa, hasta siempre.

Optimismo

Jamás perdí una guerra, las batallas son solo circunstancia, coyuntura, transiciones, el camino entre la nada y la victoria misma. Para aquellos que crean que la carne me detiene, que mi existencia solo se limita a lo que ven, encontraran en mis pasos desde el más allá, desde la memoria de los que quedan, el espíritu de mis ideas prestando nuevas gestas. No perdí jamás una guerra, por que ya perdí todas las batallas, y aún me encuentro en el campo donde las armas hablan. En algún momento se detendrán, en algún momento escucharan a sus ambiciones o a sus cobardías, y cuando su matemática sea negativa, cuando empiecen a ver opacas y sin brillo a la victoria, es cuando la entregaran con un beso en la mejilla a mis hordas de ideales. Aquellos que ven el mundo desde los ojos de los demás están limitados a ser como los demás, con vidas sin sentido, con especulaciones que de nada coronan sus tumbas. Ríanse, como las hienas del león, juzguen, como vírgenes sin pecado, vivan sus hipocresías, que cuando descansen, cuando vuelvan a su nada, yo aún levantare mis banderas.

jueves, marzo 15, 2007

Crisis institucional II

La calma ha vuelto a mi provincia. Pero solo aquella calma basada en la ignorancia. En pensar que tremendos actos no traen consecuencias, pero estos aletazos de mariposas, solo lograron cambiar el formato de una guerra declarada. El Jaque no fue mate, y los antes perseguidos pronto se transformarán en perseguidores. Maza termino por ceder la casa de gobierno a un Beder Herrera reluciente, un vice gobernador que asumió con pompas de emperador. Y como tal solo obtuvo una victoria Imperial, una victoria a un precio demasiado alto.
¿Como veo yo el panorama? Maza se acuartelo nuevamente, pero esta ves en la sede del partido peronista. Desde ahí lanzara su contraofensiva, cambiando de la guerra política convencional a la política de guerrillas. Estos días serán de tranquilidad, por que aún no aterriza de su asombro de tremenda deslealtad, jugó su única carta a la intervención provincial, intervención que el presidente de la nación perjuro y posteriormente negó. Pero lentamente la calma volverá a las mentes del mazismo, mas temprano que tarde, volverá a la arremetida y me atrevería a decir que será en frentes tales como sindicatos, alzamientos de departamentos, o pequeñas reparticiones donde aún permanecen personas leales, algún que otro paro, etc.
No debe de esperarse tiempos políticos calmos en este mes. ¿y por que digo este mes? Por que Maza tiene cuarenta días para defenderse, si no es encontrado culpable deberá retomar su cargo como gobernador.
Ahora el problema viene dado por si es encontrado culpable, pesara una inhabilitación por largo tiempo para ejercer cargos como funcionario publico, y de ahí pueden derivarse acciones penales.
Suspender es una cosa, destituir es otra. Y el gobierno nacional no será complaciente con una destitución de uno de sus gobernadores más leales.
¿Ahora cuales son las opciones que tiene el Bederismo? ¿Restituir al gobernador en sus funciones? Seria como escupir la cara de neptuno y después salir a navegar. Nadie olvida cuandoa uno lo sacan del gobierno con bastones y balas de goma. Otra alternativa es destituirlo definitivamente, y enfrentarse al gobierno nacional, y a una posible y definitiva intervención, ya que unas ves se puede sorprender, dos veces…el mazismo estará preparado para encender la provincia. Mientras tanto, y con el bastón de mando en las manos, se buscará ganar tiempo valioso, tiempo para absorber deslealtades, tiempo para acercar posiciones en busca de un acuerdo salvador que deje las turbulencias atrás.
¿Que creo yo que va a suceder? Lo van a destituir. Ya que ello brindaría un final más largo a esta crisis, y por lo tanto más susceptible a la aleatoriedad.

martes, marzo 13, 2007

Crisis Institucional Riojana


Los riojanos estamos viviendo una de las crisis políticas más vergonzosas de la historia provincial.
El gobernador (izq) junto al vice gobernador (der), encontraron sus diferencias en base a la candidatura para conducir la provincia por los siguientes cuatro años.
Pero la política, para aquellos que alguna vez transitamos esos caminos, se parece más a las matemáticas que a la astrología. Las piezas fueron moviéndose en el tablero de las instituciones democráticas para asegurar la victoria personalista de alguno de los dos. Pero estos “buenos muchachos” han olvidado la lección de la historia, o más bien la lección de la mitología, ¿que sucede cuando la espada más filosa y fuerte se enfrenta al escudo más poderoso de la tierra? Ambos se destruyen en un estruendo antológico.
El día comenzó con la primera movida del vice gobernador, Beder Herrera, sus alfiles flanquearon al gobernador, para suspenderlo en sus funciones, mientras los peones del gobernador Maza avanzaban hacia la plaza a las puertas de la casa de gobierno.
El interrogante se planteaba entre si los diputados serian capaces de suspender al gobernador, pero las cartas ya estaban echadas, y la suerte de las instituciones y la democracia agonizaba. En una jugada magistral, se espero el medio día, esas horas de calor provinciano, donde todo el mundo regresa a sus hogares y no es hora de disturbios ni revoluciones, si no de familia. Maza en persona, condujo su camioneta hasta la misma legislatura en un último intento de encontrar el milagro de la no suspensión, un poco de marketing político, una cuasi maniobra mafiosa… quien sabe.
Los diputados, sabiendo que estarían dando un paso histórico y pleno de repercusiones suspendieron al gobernador de sus funciones. ¡Pero es que no tenían otra salida! En política cuando uno da un paso ya no hay vueltas a tras. Si no lo suspendían, El vice terminaría por perder el poco apoyo que le queda, y todos los secuaces corchos, esos que siempre flotan, migrarían hacia las líneas del enemigo.
Al Maza suspendido solo le resta tener algún disturbio, “el árbol de las revoluciones se riega con sangre”, eso dicen. Ya que si no, el presidente no tiene motivos para la intervención federal a la provincia. Si esto no ocurriese, Beder Herrera asumiría como gobernador y pasaría a manejar directamente todo el aparato económico de la provincia. ¡Algo muy beneficioso para un año electoral!
Los peones de Maza seguro tomaran la casa de gobierno, la policía se mantendrá al margen de estos dos gigantes políticos, los jueces estarán expectantes, los alfiles de Beder intentaran apresurar los tiempos de una verdadera destitución, para inhabilitar de por vida al gobernador, ¿Y el gobierno nacional? Ja! Se los sacudirá a los dos.
La matemática dice, que tiene que surgir desde las sombras una tercera persona, sin antecedentes redundantes políticos, una figura mística, un “hombre de gris”, para gobernar la provincia. Muchos se relamen pensando en que ellos son, pensando en reciclar los heridos de esta contienda, pero la verdad es que pocos dan con el perfil.

martes, febrero 20, 2007

¿Que es la felicidad? Camino y me pregunto. Muchas veces en la vida pensé que no podría alanzarla, que es un horizonte o es un una especie de pequeña vena en algún lado del cuerpo, que cuando crees alcanzarla, es solamente algo que se le parece. Pero lo cierto es que la felicidad, a mi pensar, es un balance, son dos columnas del debe y el haber contable de nuestras vidas. La felicidad son momentos escondidos en nuestra memoria, son esos segundos que cuando sonreímos nos llena los huequitos de la cara, son esas carcajadas lanzadas con cuellos estirados, o pequeñas muecas casi imperceptibles para el ojo humano, pero no para el universo. Son esos momentos que recordaremos siempre, cuando alguien nos pregunte, o cuando nosotros mismos lo hacemos, cuando fuimos felices. Es empujar el auto en pareja, descalzos después de hacer el amor, es alimentar a la foquita más pequeña, es saltar sobre las olas mientras una te revuelca, es dormir cucharita cuando en ves de dos son tres.
La felicidad es la mañana perfecta, es el aire puro en el silencio, son las ganas de vivir una pasión, de enfrentar nuevos retos, es el roce del aliento de dios. La felicidad es una búsqueda cruzada, por un santo grial escondido sobre la mesa de la cocina, o la mesa de luz o encima de nuestros anteojos. La felicidad son esas vivencias que aún no han ocurrido, y que le gente que no vive feliz la llama sueños o ilusiones.
Es un estado interno, nada ni nadie puede hacernos felices, es lo que esta en la palma de nuestras manos, o a una sonrisa de distancia.

jueves, febrero 15, 2007

Carta Vieja I

A donde has ido mi pequeña dèjá vu, dime si debo de buscarte entre los pinos de un bosque nevado, o sobre la copa de los árboles, cuando los primeros rayos tiñen las hojas de naranjas, dime si te encuentras río arriba, nadando contra la corriente, como en aquel primer día, donde sangrabas libertades. Dime si debo de buscarte mirando por mi ventana cuando la noche transpira, si debo de esperarte, si debo de secuestrarte en sueños para amarte en prohibido, como lo vengo haciendo cuando el conciente te entrega al subconsciente. Dime si te escondes entre el ruido de los autos, las sombras alargadas y los círculos de maletín y papel, dime si fuiste tras tus sueños, o solo sigues al resto de los tacos, sobre baldosas caminadas. Cuéntame dèjá vu, si hoy tus brazos cargan calor, si tu mirada refleja, si tus labios prueban la sal, si tu cuerpo se extrémese con pequeños espasmos.
Por que desde el día en que no he vuelto a vivirte, no he vuelto a ver el blanco y los amaneceres son solo de borrachas nubes. Las libertades desaparecieron, y solo vivo prisionero de un pasado que me habla al oído cuando viajo en colectivo, desde mi deber hasta mi padecer. Por que desde que no he vuelto a vivirte, la noche ya no traspira, y solo resta perseguirte en sueños, te he buscado en cada automóvil que salta mi hombro, en cada abogado, sus rapideces y sus charlas de arcos y galerías. Mis sueños me abandonaron y levantaron vuelo, no sin antes mirarme a los ojos con la tristeza de la resignación.
Dime mi pequeña dèjá vu, por que no he vuelto a vivir, aquellas cosas que un día viví, los hermosos amaneceres, el blanco, la libertad, los sueños compartidos, el calor en los brazos.

martes, enero 23, 2007

El dia

El día por fin ha llegado. Por fin levantare vuelo y dejare a tras mi pasado. Se que mi carreteo fue largo, que mis alas no tenían plumas, pero el tiempo, ese aliado de los débiles, me enseño a volar, me dio las fuerzas y el animo para elevarme, hoy mi futuro es claro, hoy hay en el esperanzas, fuerzas, mis sueños, en mi pasado solo quedan sonrisas de hermosos momento y muecas de orgullo por lo superado. Muchos fueron los intentos, muchos los aletazos lanzados al viento, muchos los saltitos en busca de libertad, pero jamás pude abandonar el nido.
Hoy es un día distinto, hoy es el día.