JAVA- Crear un Menú con el Botón Derecho en Java/Netbeans – JPopupMenu - Sin codigo , de manera visual y rapida.

Este tutorial me parecio genial , una manera tan sensilla de hacer algo que por codigo se vuelve tan largo , porque si programo en netbeans justamente es porque , no quiero pasar horas metiendo codigo en cosas que ya estan resueltas y listas para haceras visualmente .

bueno , dejando esto de lado , aqui dejo el tutorial .


Buenas a todos los lectores, en este muy breve post voy a comentar como simplemente y de manera visual (sin código) podemos crear un menú que aparece cuando hacemos botón derecho sobre algún componente, para los que aún no descubren de que se trata acá va una pista de lo que pensamos hacer:
Hay muchas maneras de hacerlo por código, pero vamos a ir por la más simple que es utilizando el editor visual.
Lo primero que tenemos que hacer es crear el JPopupMenu, que és el componente visual que aparecerá, para esto vamos a:
“Barra de Componentes o Palera -> Menús Swing -> Menú Emergente o JPopupMenu”

Arrastrando esto a nuestro editor visual, en la ventana “Inspector” nos aparecerá fuera del JFrame/JInternalFrame el elemento creado, que ya le podemos cambiar de nombre, icono y texto a mostrar desde la ventana propiedades. (Recuerden el nombre que le vamos a poner, en mi caso es menuTablaTelefonos) . Lo que sigue es diseñarlo, para esto vamos a ir agregando los botones que nos sean necesarios, para esto hacemos click derecho en el componente (En la ventana inspector) y:
“Añadir de Paleta -> Elemento de Menú”
Con esto vamos a ir agregando los botones, podemos al igual que el padre, ir cambiando el texto que muestra y el icono desde la ventana propiedades:
Bueno, ahora viene la parte más imporante, para que el menú se muestre hay mil artilugios, pero nosotros vamos a ir por el más rápido. Seleccionamos en el editor visual el componente del que saldra el menú cuando se hace click en el botón derecho (JPanel, JTextArea, JTable, etc) y en las propiedades buscamos la que diga “ComponentPopupMenu” y de ahí elegimos nuestro JPopupMenu creado en el primer paso (en mi caso es menuTablaTelefonos) y lo elegimos.


fuente : 
http://hackelare.wordpress.com/2010/06/23/crear-un-menu-con-el-boton-derecho-en-javanetbeans-jpopupmenu/

java - Vectores , usando la clase vector .

Cuando hablamos de vectores , muchas veces podemos pensar en un array de una dimencion 
 
como seria 
 
String[] casa = {"pintura","pared1"}; 
String[] casa = String[2]; 

el problema de este tipo de arreglo es que la dimencion es fija ,
simpre que declaremos un array antes de utilizarlo debemos indicar cual es su dimencion.
 
En un momento necesite de un arreglo cuya dimencion pueda ur creciendo. 
Esto me llevo a conocer la clase "Vector", el cual si se quiere se puede indicar
su tamaño inicial , pero tambien se puede usar sin indicarlo.  
 
 
Les dejo algunos conceptos basicos de la utilizacion de la misma. 

extraidos de la pagina:  http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/colecciones/vector.htm

Crear un vector

Para usar la clase Vector hemos de poner al principo del archivo del código fuente la siguiente sentencia import
import java.util.*;
Cuando creamos un vector u objeto de la clase Vector, podemos especificar su dimensión inicial, y cuanto crecerá si rebasamos dicha dimensión.
    Vector vector=new Vector(20, 5);
Tenemos un vector con una dimensión inicial de 20 elementos. Si rebasamos dicha dimensión y guardamos 21 elementos la dimensión del vector crece a 25.
Al segundo constructor, solamente se le pasa la dimensión inicial.
    Vector vector=new Vector(20);
Si se rebasa la dimensión inicial guardando 21 elementos, la dimensión del vector se duplica. El programador ha de tener cuidado con este constructor, ya que si se pretende guardar un número grande de elementos se tiene que especificar el incremento de la capacidad del vector, si no se quiere desperdiciar inútilmente la memoria el ordenador.
Con el tercer constructor, se crea un vector cuya dimensión inicial es 10.
    Vector vector=new Vector();
La dimensión del vector se duplica si se rebasa la dimensión inicial, por ejemplo, cuando se pretende guardar once elementos.

Añadir elementos al vector

Hay dos formas de añadir elementos a un vector. Podemos añadir un elemento a continuación del último elemento del vector, mediante la función miembro addElement.
        v.addElement("uno");
Podemos también insertar un elemento en una determinada posición, mediante insertElementAt. El segundo parámetro o índice, indica el lugar que ocupará el nuevo objeto. Si tratamos de insertar un elemento en una posición que no existe todavía obtenemos una excepción del tipo ArrayIndexOutOfBounds. Por ejemplo, si tratamos de insertar un elemento en la posición 9 cuando el vector solamente tiene cinco elementos.
Para insertar el string "tres" en la tercera posición del vector v, escribimos
        v.insertElementAt("tres", 2); 
En la siguiente porción de código, se crea un vector con una capacidad inicial de 10 elementos, valor por defecto, y se le añaden o insertan objetos de la clase String.
        Vector v=new Vector();
        v.addElement("uno");
        v.addElement("dos");
        v.addElement("cuatro");
        v.addElement("cinco");
        v.addElement("seis");
        v.addElement("siete");
        v.addElement("ocho");
        v.addElement("nueve");
        v.addElement("diez");
        v.addElement("once");
        v.addElement("doce");
        v.insertElementAt("tres", 2);
Para saber cuantos elementos guarda un vector, se llama a la función miembro size. Para saber la dimensión actual de un vector se llama a la función miembro capacity. Por ejemplo, en la porción de código hemos guardado 12 elementos en el vector v. La dimensión de v es 20, ya que se ha superado la dimensión inicial de 10 establecida en la llamada al tercer constructor cuando se ha creado el vector v.
        System.out.println("nº de elementos "+v.size());
        System.out.println("dimensión "+v.capacity());
Podemos eliminar todos los elementos de un vector, llamando a la función miembro removeAllElements. O bien, podemos eliminar un elemento concreto, por ejemplo el que guarda el string "tres".
        v.removeElement("tres");
Podemos eliminar dicho elemento, si especificamos su índice.
        v.removeElementAt(2);

Acceso a los elementos de un vector

El acceso a los elementos de un vector no es tan sencillo como el acceso a los elementos de un array. En vez de dar un índice, usamos la función miembro elementAt. Por ejemplo, v.elementAt(4) sería equivalente a v[4], si v fuese un array.
Para acceder a todos lo elementos del vector, escribimos un código semejante al empleado para acceder a todos los elementos de un array.
        for(int i=0; i<v.size(); i++){
            System.out.print(v.elementAt(i)+"\t");
        }
Existe otra alternativa, que es la de usar las funciones del interface Enumeration. Este interface declara dos funciones pero no implementa ninguna de ellas. Una Enumeration nos permite acceder a los elementos de una estructura de datos de forma secuencial.
public interface Enumeration {
    boolean hasMoreElements();
    Object nextElement();
}
La función miembro elements de la clase Vector devuelve un objeto de la clase VectorEnumerator que implementa el interface Enumeration y tiene que definir las dos funciones hasMoreElements y nextElement.
final class VectorEnumerator implements Enumeration {
    Vector vector;
    int count;
    VectorEnumerator(Vector v) {
 vector = v;
 count = 0;
    }
    public boolean hasMoreElements() {
 //...
    }
    public Object nextElement() {
 //...
    }
}
El objeto enum devuelto por la función miembro elements es de la clase VectorEnumerator, sin embargo no podemos escribir
        VectorEnumerator enum=v.elements();
porque VectorEnumerator no es una clase pública. Como podemos ver en su definición, no tiene la palabra reservada public delante de class. Sin embargo, podemos guardar un objeto de la clase VectorEnumerator en una variable enum del tipo Enumeration, por que la clase implementa dicho interface.
        Enumeration enum=v.elements();
        while(enum.hasMoreElements()){
            System.out.print(enum.nextElement()+"\t");
        }
Desde el objeto enum devuelto por la función miembro elements de la clase Vector llamamos a las funciones miembro hasMoreElements y nextElement de la clase VectorEnumerator. La función hasMoreElements devuelve true mientras haya todavía más elementos que se puedan acceder en el vector v. Cuando se ha llegado al último elemento del vector, devuelve false. La función nextElement devuelve una referencia al próximo elemento en la estructura de datos. Esta función devuelve una referencia a un objeto de la clase base Object, que el programador precisará en ciertos casos, como veremos más abajo, promocionar (casting) a la clase adecuada.
Para buscar objetos en un vector se puede usar una Enumeration y hecer una comparación elemento por elemento mediante equals, tal como vemos en la siguiente porción de código
        Enumeration enum=v.elements();
        while(enum.hasMoreElements()){
            String elemento=(String)enum.nextElement();
            if(elemento.equals("tres")){
                System.out.println("Encontrado tres");
                break;
            }
 }
Podemos usar alternativamente, la función miembro contains para este propósito.
        if(v.contains("tres")){
            System.out.println("Encontrado tres");
        }
 
 
FUENTE : http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/colecciones/vector.htm 
 

java - obtener fecha modificacion de un archivo (lastModified())

Buenas esta es una funcion que realize para obtener la fecha de modificacion de un archivo .

Recibe un  File y devueve un String con la fecha , en mi caso por un tema particular , raramente el mes que me devuelve es uno anterior por lo que le tuve que sumar un "1" al mes . Pero posiblemente si utilizan ustedes les ande bien , la verdad no se porque en mi compu tiene ese comportamiento .


public static String fechaModificado(File fichero){
       long ms = fichero.lastModified();
            Date d = new Date(ms);
            Calendar c = new GregorianCalendar();
            c.setTime(d);
            String dia = Integer.toString(c.get(Calendar.DATE));
            String  mes = Integer.toString((c.get(Calendar.MONTH) + 1)) ;
            String  annio = Integer.toString(c.get(Calendar.YEAR));
            String  hora = Integer.toString(c.get(Calendar.HOUR_OF_DAY));
            String  minuto = Integer.toString(c.get(Calendar.MINUTE));
            String segundo = Integer.toString(c.get(Calendar.SECOND));
       return annio +"-"+ mes +"-"+ dia +" "+ hora +":"+ minuto +":"+ segundo ;
   }