lunes, 3 de septiembre de 2012

Uso de RiverLayout con Ventanas Maximizadas en JAVA

9/03/2012

Hace variosdíasme preguntaron comore ubicarlos objetos ore dimensionar, cuando semaximizael JFrame ,pues para ello hay que jugar con los layout pero hay un layout que me llamo bastante laatención este layout nos permite re dimensionartambiénel objeto directamente en caso que no queramos que se acople al ancho del Frame ,como el objeto TextField que ven en la imagen del campo edad que es de tamaño pequeño y semantendráasíaun cuando se maximiza la ventana. este Layout se llamaRiverLayout y es utilizado por unaaplicaciónmuy conocidajalbum(aplicaciónpara gestionarimágenes, muy buena y creada en java), si quieren saber mas de RiverLayout les dejo laApi, para trabajar este layout tenemos que agregar etiquetas algo parecido a las etiquetas html como : br,p, center,top para poder alinear o colocar los objetos.por eso es necesario ver la Api para entender muy bien el layout.

                        jContentPane.add("center", new JLabel("Formulario de Registro"));
jContentPane.add("p left", new JLabel("Nombre"));
jContentPane.add("tab hfill", new JTextField());
jContentPane.add("br", new JLabel("Edad"));
jContentPane.add("tab", new JTextField(3));
jContentPane.add("br vtop", new JLabel("Observacion"));
jContentPane.add("tab hfill vfill", new JScrollPane(new JTextArea()));
jContentPane.add("p center", new JButton("Enviar"));
jContentPane.add("vtop",jLabel);

En el ejemplo de descarga va incluida el codigo fuente del RiverLayout para su mejora.


CLICK EN EL ANUNCIO PARA ACTIVAR EL BOTON DE DESCARGA





HOY 2 X 1 Menú en forma Horizontal, Añadir textura a un JPanel en JAVA

9/03/2012


Hoy es Lunes de 2 X 1, y les traigo doscódigossencillos pero muyútiles.
alguna vez hemos tenido la necesidad de crear unMenúde forma horizontal pero elJMenuBar que viene por defecto ,siempre sesitúaen la parte superior de la ventana por la simplerazónqueasíesta diseñado,pero hoy les voy a enseñar como darle otraorientación algo que no es muycomplejo.

primero debe de crear unmétodoque me retorne unJMenuBar , este metodo se va a encargar de añadirme directamente la cantidad de Menus(JMenu) que necesite presentar.

public JMenuBar DameMenuBar() {
JMenuBar menuBar = new JMenuBar();
menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.PAGE_AXIS));
menuBar.add(DameMenu("Menu 1"));//CREO LOS MENUS
menuBar.add(DameMenu("Menu 2"));
menuBar.add(DameMenu("Menu 3"));

return menuBar;
}

y con la ayuda de unBordeLayout.PAGE_AXIS(Componentes que están dispuestas horizontalmente de izquierda a derecha.),puedo darle laposiciónque necesito.

Como creo losMenúscon sus Items?
De la misma forma como creamos el MenuBar vamos a crear elMenú,con unmétodoque me retorne un JMenu y que merecibauna variable String, esto es para colocar el Titulo o nombre del Menu.

 public JMenu DameMenu(String title) {
JMenu m = new HorizontalMenu(title);//RESIVEN EL TITULO
m.add(new JMenuItem("SIGUEME EN TWITTER"));
m.add(new JMenuItem("SIGUEME EN FACEBOOK"));
m.add(new JMenuItem("SUSCRIBETE"));
/******************COLOCANDO SUBMENU*******************/
JMenu submenu = new HorizontalMenu("Submenu");
submenu.add(new JMenuItem("SUB ITEM 1"));
submenu.add(new JMenuItem("SUB ITEM 2"));
m.add(submenu);

return m;
}

con este metodo creo la cantidad de Menus y Items que necesito.
Ahora vamos a la Parte un poco compleja a lacreaciónde la claseHorizontalMenu, la cual es un JMenu y sumétodoconstructor me recibe la variable String(para añadir el titulo alMenú), obviamente ya que tengo unMenúhorizontal tengo que construir mi PopupMenu el cual me va a contener los Items de maneraHorizontal,esto lo hago con la ayuda del mismo Layout pero conLINE_AXIS(Si el contenedor es horizontal entonces los componentes se colocan horizontalmente).


        
HorizontalMenu(String label) {
super(label);
JPopupMenu pm = getPopupMenu();
pm.setLayout(new BoxLayout(pm, BoxLayout.LINE_AXIS));
}

public Dimension getMinimumSize() {
return getPreferredSize();
}

public Dimension getMaximumSize() {
return getPreferredSize();
}


DESCARGAR




sábado, 1 de septiembre de 2012

Descarga este Curso Java Nivel AVANZADO

9/01/2012

jueves, 30 de agosto de 2012

Descarga este Duo Pack de Cursos en programación C

8/30/2012


EstePACK DE DOS LIBROSencontraras presente los principios de la programación estructurada y de la ingeniería de software. Se incluyen consejos o recomendaciones relativos a errores comunes, a prácticas correctas en la programación, movilidad, desempeño e ingeniería de software. Además, se muestran las características de C dentro del contexto de la correcta estructuración y la debida documentación. Una explicación completa de cómo funcionan los programas en C y ejemplos de su ejecución, así como la utilización de ANSI C.

DESCARGAR

Descarga este curso de Java Server Pages(AVANZADO)

8/30/2012


El presente curso sobre JSP(nivel avanzado),aprenderásextensiones, cookies, autenticar los usuarios, a crear pool de conexiones todo lo que tiene que ver un nivel avanzado.

Requisitos del curso

Una iniciación al lenguaje Java y el JSP es requerida para seguir este curso. La creación y el manejo de
objetos Java así como el JSP básico están considerada cómo asimilado antes de empezar este curso.

DESCARGAR

lunes, 27 de agosto de 2012

2 x 1 Arrastrar y leer fichero, reemplazar fichero en java

8/27/2012




Hoy es lunesdíade dos por uno enCódigojava, directo de mibaúldecódigosles traigo doscódigosmuy buenos, reemplazar un fichero existente y arrastrar y soltar un fichero desde cualquier parte de tu PC, pero primeroconozcamosunos conceptos.

DropTarget: se asocia con un componente cuando ese componente desea aceptar caídas durante las operaciones de arrastrar y soltar.

DropTargetListener: muestra unainformaciónvisual ante los ojos del usuario en las operaciones de arrastrar y soltar.

DnDConstants:Esta clase contiene valores constantes que representan un tipo de acción (s) que debe realizar una operación de arrastrar y soltar.

SimpleDateFormat:es una clase concreta para dar formato a fechas y analizar de una manera sensible a la localidad.

una vez entendido estos conceptos vamos alcódigo.

Como reemplazar un fichero existente?
primero tenemos que crear el componenteJFileChooser(proporcionauna interfaz de usuario para elegir un fichero determinado) que nos permitiraescogerel fichero, y extraer el archivo seleccionado por medio de la propiedadgetSelectedFile(),aquíes donde sabremos si el fichero existe o no , una vez obtenido el fichero utilizamos la propiedad de la claseFile, exists() para saber si el fichero es existente o no
  

fileChooser = new JFileChooser() {
@Override public void approveSelection() {
File f = getSelectedFile();
if(f.exists() && getDialogType() == SAVE_DIALOG) {

String m = String.format("%s EL FICHERO YA EXISTE.
DESEA REEMPLAZARLO?", f.getAbsolutePath());
int rv = JOptionPane.showConfirmDialog(this, m, "GUARDAR", JOptionPane.YES_NO_OPTION);
if(rv==JOptionPane.YES_OPTION) {

_mensaje.setText("Fichero reemplazado con exito....!!");

}
}
super.approveSelection();
}
};



de esta forma obtenemos el fichero y comprobamos la existencia del mismo, con la propiedadgetDialogType de la clase JFileChooser seleccionamos el tipo en este casoSAVE_DIALOG(para guardar cualquier fichero), una vez seleccionado el fichero damos clic en guardar y nos mostrara un mensaje,donde indica que el fichero ya existe y si desea reemplazarlo.

Arrastrar y Soltar un fichero?
existiráalgunaaplicaciónque necesitemos unafunciónde arrastrar cualquier fichero,ysegúnello sera su complejidad pero estecódigoes simple yfácilde entender primero construimos elDropTargetListener que esbásicamenteun evento o un escucha.

DropTargetListener dtl = new DropTargetAdapter() {
@Override public void dragOver(DropTargetDragEvent dtde) {
if(dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
dtde.acceptDrag(DnDConstants.ACTION_COPY);
return;
}
dtde.rejectDrag();
}
@Override public void drop(DropTargetDropEvent dtde) {
try{
if(dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
Transferable t = dtde.getTransferable();
List list = (List)t.getTransferData(DataFlavor.javaFileListFlavor);
Object o = list.get(0);
if(o instanceof File) {
File file = (File) o;
imagen_pequeña.setIcon(FileSystemView.getFileSystemView().getSystemIcon(file));
imagen_grande.setIcon(new ImageIcon(sun.awt.shell.ShellFolder.getShellFolder(file).getIcon(true)));
/***************PROPIEDAD DEL FicHERO************************/

lb_nombre.setText(""+file.getName());
lb_ruta_fichero.setText(""+file.getAbsolutePath());
lb_tamaño.setText(""+formateador.format(file.length()/1024.0/1024.0)+" MB");
/**********************MODIFICADO CUANDO??**********************************/
SimpleDateFormat sdf = new SimpleDateFormat ( "MM/dd/yyyy HH:mm:ss" ) ;
fecha_modificada.setText(""+sdf.format(file.lastModified()));

/******************************************/
}
dtde.dropComplete(true);
return;
}
}catch(UnsupportedFlavorException ufe) {
ufe.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
}
dtde.rejectDrop();
}
};



uan vez ya armado el escucha y declarada la constanteACTION_COPY , por medio de una lista obtendremos el fichero y para mostrar el icono de este necesitaremos importar lalibreríart.jar , y la encontramos en la ruta esC:\Program Files (x86)\Java\jre7\lib, una vez importada estalibreríautilizamos la propiedadFileSystemView.getFileSystemView().getSystemIcon(file) la cual recibe al fichero y obtiene su icono,tambien podemos obtener las propiedades de fichero,como su nombre,su peso,en quedirecciónesta alojado,y cuando fue modificado por ultima vez todo esto lo hacemos con las propiedades de la claseFile

DESCARGAR