Drag & Drop en java

Buscando en internet, informacion sobre drag & drop en java, me he topado con que no hay mucha informacion! :S y lo que encontraba eran unos codigos tan largos y tediosos! pero esta vez, me toco que trabajar, y ni modo, tuve que encontrar una forma mas facil, y pues, la verdad no esta tan dificil! ūüôā solo es de manejar los eventos del mouse en java ūüôā

  • Un peque√Īo ejemplo:

Usando el evento pressed del mouse, capturamos la posicion inicial de nuestra figura, en este caso trabajare con un boton

private void formMousePressed(java.awt.event.MouseEvent evt) {
          btn_drag.setBounds(evt.getX(), evt.getY(), 100, 60);
}

Con el evento Dragged del mouse, vamos capturando las posiciones en las que se va moviendo en el recorrido nuestra figura.

private void formMouseDragged(java.awt.event.MouseEvent evt) {
         btn_drag.setBounds(evt.getX(), evt.getY(), 100, 60);
}

Y por ultimo para la posicion final en donde quedara nuestra figura, lo hacemos con el evento Released del mouse.

private void formMouseReleased(java.awt.event.MouseEvent evt) {
          btn_drag.setBounds(evt.getX(), evt.getY(), 100, 60);
}

Y listo! con esto podemos mover cualquier figura, teniendo como parametros nuestras posiciones x, y y. ūüôā

Si deseas puedes descargar este peque√Īo ejemplo desde AQUI

Aqui un video del resultado.

LinkedList en java

Hoy me he enredado trabajando con Listas desde java, antes tenia la costumbre de hacer mis listas a patita, pero como existen las librerias de java, que te hacen mas facil la vida, solo se puede hacer con un LinkedList, estas permiten que se agreguen o eliminen elementos en la lista, al inicio o al final.

Un ejemplo de ello..

Teniendo una clase llamada “miclase”

public class miclase {

int id_class;
String nombre;

public miclase(int id, String nom){
this.id_class=id;
this.nombre=nom;
}

}

ahora vamos a hacer algunas operaciones sobre esta lista

public static void main(String[] args) {

LinkedList lista = new LinkedList();

//agregando datos a la lista
lista.add(new miclase(1,”clase1″));
lista.add(new miclase(2,”clase2″));
lista.add(new miclase(3,”clase3″));

//accediendo al primer elemento de la lista
System.out.println(lista.getFirst().nombre);

//eliminando primer dato de la lista
lista.removeFirst();

//eliminando ultimo dato de la lista
lista.removeLast();

//eliminando todos los datos de la lista
lista.clear();

for(int i =0; i<lista.size(); i++){
//accediendo al dato en la posicion i
System.out.println(lista.get(i).nombre);
}

}

Y listo, estas son las operaciones basicas que se manejan en esta clase, espero que sea de ayuda! ūüôā

Graphviz desde Java

Saludos a tod@s, hoy publico un post acerca de Graphviz, una herramienta para crear grafos desde nuestro editor de textos, hoy utilizare java que es la herramienta que actualmente estoy manejando. Debo a√Īadir que esto lo aprendi desde el blog de Rdebug, conociendo un¬†m√©todo¬†mas simple de hacer.

Pero bueno, para esto necesitamos primero descargarlo, Graphviz de la pagina oficialy descargan la ultima version ya que lo actualizan constantemente.

Cuando se instala, en archivos de programa genera una carpeta “bin” su direccion sera como esta:

“C:\Archivos de programa\Graphviz 2.21\bin”

Para esto tenemos que crear un archivo donde esta el codigo que queremos graficar, algunos ejemplos desde la pagina oficial aqui

Y desde consola escribimos el codigo siguiente

se debe invocar en la consola el siguiente comando

Código:

…path_de_dot…\dot.exe -Tjpg archivo_de_entrada -o archivo_de_salida

Ejemplo:

C:\Archivos de programa\Graphviz 2.21\bin\dot.exe -Tjpg grafo1.txt -o grafo1.jpg

Ahora para hacer esto desde java tenemos que escribir lo mismo que en consola, pero aca se har√° por partes, claro esta solo es una forma de hacerlo, pueden haber muchas mas!

Lo que vamos  a hacer es usar Runtime.getRuntime().exec() de java para invocar a dot.exe y mandarle los parametros de tus archivos que queres pasar a jpg.

public void generar(){

try {

//path del dot.exe,por lo general es la misma, pero depende de donde hayas instalado el paquete de Graphviz

String dotPath = “C:\\Program Files (x86)\\Graphviz2.26.3\\bin\\dot.exe”;

//path del archivo creado con el codigo del graphviz que queremos

String fileInputPath = “C:\\path..\\codigo.txt”;

//path de salida del grafo, es decir el path de la imagen que vamos a crear con graphviz

String fileOutputPath = “C:\\path..\\grafo1.jpg”;

//tipo de imagen de salida, en este caso es jpg

String tParam = “-Tjpg”;

String tOParam = “-o”;

//concatenamos nuestras direcciones. Lo que hice es crear un vector, para poder editar las direcciones de entrada y salida, usando las variables antes inicializadas

//recordemos el comando en la consola de windows: C:\Archivos de programa\Graphviz 2.21\bin\dot.exe -Tjpg grafo1.txt -o grafo1.jpg Esto es lo que concatenamos en el vector siguiente:

String[] cmd = new String[5];
cmd[0] = dotPath;
cmd[1] = tParam;
cmd[2] = fileInputPath;
cmd[3] = tOParam;
cmd[4] = fileOutputPath;

//Invocamos nuestra clase 

Runtime rt = Runtime.getRuntime();

//Ahora ejecutamos como lo hacemos en consola

rt.exec( cmd );

} catch (Exception ex) {
ex.printStackTrace();
}  finally {
}
}

Y listo con esto puedes hacer un copy & paste a tu codigo, y cambiar los parametros, solo tienes que tener cuidado con los diferentes path’s que se usan, para que invocar el .dot, luego mostrar la imagen donde se requiera! ¬†ūüôā

Crear una carpeta nueva en java

Hoy me ha tocado que crear un nuevo directorio; esto es nuevo para mi porque desde java solo había creado y manipulado archivos, no carpetas, pero me doy cuenta que no es mas que utilizar un método propio de java.io.File

para esto creamos un nuevo archivo con esta librería, especificando el directorio que queremos crear:

java.io.File directorio = new File(“C:\Nueva Carpeta\Prueba”);
// Si el directorio Nueva Carpeta existe, la siguente instruccion crea el directorio C:\Nueva Carpeta\Prueba
directorio.mkdir();

// Si el directorio nueva Carpeta no existe la siguiente instrucción crea los directorios C:\Nueva Carpeta Y C:\Nueva Carpeta\Prueba.
dir.mkdirs();

JFlex y Cup en Java

Hola a todos, despues de un tiempo de descanso he decidido postear algo de Jlex y Cup, estas herramientas nos sirven para crear nuestros analizadores lexicos y sintacticos, para ello les dejo mi manual
Manual JFlex y Cup
en el pueden ver la instalacion y algunos ejemplos, en esta ocasion use el IDE Netbeans.
Saludos..! =)

Identificadores en Java

Un dato interesante son los caracteres que puede aceptar un identificador en java, ya que muchos conocen el¬†t√≠pico¬†concepto de un identificador como:¬†una letra seguido de letras o¬†n√ļmeros, hace poco tuve que investigar cual es el verdadero concepto, y es el siguiente:

Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar.

En Java, un identificador comienza con una letra, un subrayado (_) o el¬†car√°cter¬†($). Los siguientes caracteres pueden ser letras, d√≠gitos, un subrayado (_), e incluso¬†tambi√©n¬†un¬†car√°cter¬†$. Se distinguen las may√ļsculas de las min√ļsculas y no hay longitud m√°xima.

Serían identificadores válidos:

  • identificador
  • nombre_usuario
  • Nombre_Usuario
  • _variable_del_sistema
  • $transaccion

y su uso sería, por ejemplo:

  • int contador_principal;
  • char _lista_de_ficheros;
  • float $cantidad_en_Ptas;

Dias antes no sabia que se java aceptaba el simbolo $, ahora lo s√© y lo comparto para todos aquellos que como yo, no estabamos enterados……