viernes, 29 de enero de 2010

LOGIN Y PASSWORD EN JAVA: CASO ARCHIVO BINARIO

Pues bien este es un programita util para programadores en java y php mezclado con java, ya que en muchas ocaciones entero acceso a un sitio web o aplicacion java es limitado por la conexion al servidor de nuetras bases de datos sql, ejemplo de esto es cuando debemos exportar la BD o realizar un calculo u operacion y resulta que se niega el acceso al mismo por haber actualizado la data, es por esto que en algunos casos conviene tener un login trasero en archivo binario escondido en un archivo por ejemplo cfto.dll (Archivo binario con codigo cifrado dentro del sitio), esto nos deja una puerta alterna para realizar operaciones de todo tipo siempre y cuando se tenga un BD temporal o de respado para realizar esta operacion en otra direcion web o ubicacion en cualquier .

Pues bien aca un codigo en java que permite este acceso:

jueves, 28 de enero de 2010

COMO CAMBIAR UNA IMAGEN DE FONDO A UN JFRAME DESDE UN BOTON EN JAVA NETBEANS

Pues bien esta tarea es muy interesante ya que en una oportunidad diseñe una aplicacion que mostrara la informacion pintada de fonde en el JFrame, osea un tipo de presentacion power point en java, la cual cambia las imagenes de fondo de un jframe mediane el evento click del mouse en un boton o etiqueta con imagen!!!!

Materiales:

*Se necesita crear un Nueva Aplicacion Java (EJ: Efecto_PowerPoint) --> Menu Nuevo Proyecto, JAva Aplication

*Se necesita crear un nuevo Package imagen dentro del proyecto para manejar las imagenes ademas de copiar dentro de el las imagenes a mostrar de fondo1.jpg, fondo2.jpg, fondo3.jpg,fondo4.jpg.

* Una clase pintar que modifique el el procedimiento de pintura de fondo de tipo publico para modificar el fondo a partir de un contructor (Click Derecho en Package) nueva clase llamada pintar.

* Una clase variables en donde se declaren las funciones mostrar_imagen() y crear_imagen(String fondo), estas dos funciones sirven de contructores que permiten el acceso a variables publicas o globales en java ya que el no maneja variables publicas cuando se desarrollan mas de un archivo, esto quiere decir que si creas un Jframe en java y archivo de clase q lo procese estos no se comunicaran de manera general solo a travez de los llamados contructores que tienen la funcion de meter una variable en una funcion de un archivo de tipo clase o jpanel, jrame, etc y sacarla por medio de return de la memoria ram, no es muy limpio pero funciona y es 1 de los metodos mas comunes para esto (Click Derecho en Package) nueva clase llamada varaibles.

* Un Jframe principal que ejecutara la accion de repintado mediante 2 botones (Incluire 2 etiquetas) para le efecto de siguiente y anterior, en el se declarara un array de valores String(Cadena con la direccion fisica de cada imagen esto nos dara le efecto simple que encierra power point).


Ok comensemos:

Primero la clase variables (Click Derecho en Package) nueva clase llamada varaibles.

Este es el codigo de la clase variables:


package Efecto_PowerPoint;

/**
*
* @author Fernando Perez
*/
public class variables {
private static String Fondo;


public static int mostrar_imagen()
{
return Fondo;

/* Este es el codigo del constructor que obtiene el valor de la variable de acceso global */
}

public static void crear_imagen(String valor)
{
Fondo = valor;

/* Este es el contructor que asigna el valor a la varaible global*/
}

}


Ok ahora el codigo de la clase pintar que obtiene los valores del contructor mostrar_imagen()


package Efecto_PowerPoint;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;

/**
*
* author Fernando Perez
*/
public class pintar extends javax.swing.JPanel {

public pintar(){

this.setSize(769,627);
}


@Override
public void paint(Graphics g){
String foto=variables.mostrar_imagen();

/*bien primero declaramos una variable foto de tipo String y le asignamos el valor del
constructor que almacena el nombre de la ruta de la imagen seleccionada del formulario*/

Dimension tamanio = getSize();
ImageIcon imagenFondo = new ImageIcon(getClass().getResource(foto));

/* Aca se declaro la ruta de la imagen a partir de la varaialbe local foto*/

g.drawImage(imagenFondo.getImage(),0,0,tamanio.width, tamanio.height, null);
setOpaque(false);
super.paintComponent(g);
}




Ok ahora el JFrame principal que tendra 2 botones Anterior y siguiente ademas de 2 etiquetas
con la misma funcion.


import clases.pintar;
import clases.variables;
import java.awt.BorderLayout;

/**
*
* @author Fernando Perez
*/
public class lienzo extends javax.swing.JFrame {
int cont;
String[] img = {"/imagen/fondo1.jpg",""/imagen/foto2.jpg",""/imagen//foto3.jpg",""/imagen/foto4.jpg"};

/** se crea el Jframe lienzo */
public contenido_11() {
initComponents();
}

/*esta parte no se modifica ya que es creada por NetBeans pero si le dan apie coipa
y pega cone so*/
@SuppressWarnings("unchecked")
//
private void initComponents() {

jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();

setMinimumSize(new java.awt.Dimension(729, 627));
setModalExclusionType(java.awt.Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});

jButton1.setText("Anterior");
jButton1.setName("jButton1"); // NOI18N
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton1MouseClicked(evt);
}
});

jButton2.setText("Siguiente");
jButton2.setName("jButton2"); // NOI18N
jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton2MouseClicked(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(565, Short.MAX_VALUE)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(586, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addGap(18, 18, 18))
);

pack();
}


/*Hasta aca el codigo generedo por NetBeans*/

private void formWindowActivated(java.awt.event.WindowEvent evt) {
String fotos = "";
fotos=img[cont];
/*asignamos la ruta de la imagen desde el array donde la primera imagen esta en la
pocision 0*/
variables.crear_imagen(fotos);
/*Bien asignamos la ruta al contructor que almacena la variable*/
pintar fondo = new pintar();
this.add(fondo , BorderLayout.CENTER);
fondo_siguiente.repaint();

}


private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
/*Esto es interesante esta el la accion que retrosede la seleccion de imagenes para
el boton anterior*/
if(cont!=0){
cont=cont-1;
String fotos = "";
fotos=img[cont];
variables.crear_imagen(fotos);
pintar fondo_siguiente = new pintar();
this.add( fondo_siguiente , BorderLayout.CENTER);
fondo_siguiente.repaint();
}
}



private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
if(cont!=img.length){
cont=cont+1;
String fotos = "";
fotos=img[cont];
variables.crear_imagen(fotos);
pintar fondo_anterior = new pintar();
this.add( fondo_anterior , BorderLayout.CENTER);
fondo_anterior.repaint();}
}



/**
* @Este es el main del Jframe
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new lienzo.setVisible(true);

}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
// End of variables declaration

}

COMO PONER UNA IMAGEN DE FONDO A UN JFRAME EN JAVA NETBEANS

Pues bien este proyecto ya es bastante discutido pero es una buen amanera de comenzar!!!

Materiales:

*Se necesita crear un Nueva Aplicacion Java (EJ: Pintura) --> Menu Nuevo Proyecto, JAva Aplication
*Se necesita crear un nuevo Package imagen dentro del proyecto para manejar las imagenes
ademas de copiar dentro de el un imagen con el nombre de fondo1.jpg
*Se necesita crear un jfame para mostrar la imagen pintada en el fondo.
*Se necesita crear una clase publica (Ej:Pintar) Click Derecho en Package nueva clase pintar.


Ok comensemos:

Primero la clase pintar

codigo de la clase pintar:

package pintar; /* Nombre de la aplicacion que hemos creado asigando por defecto*/

/*importacion de librerias y clases*/
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;

/**
*
* @author Fernando Perez
*/
/* Decalrar la clase como una extencion de un Japanel*/
public class pintar extends javax.swing.JPanel{

public pintar(){

this.setSize(769,627);
/* Ya declarado la extencion esta linea especifica el tamaño del Jframe o Jpanel a Pintar
el valor de setSize(?,?) puede modificarse a su antojo para esta tarea.*/
}

@Override
public void paint(Graphics g){
Dimension tamanio = getSize();
ImageIcon imagenFondo = new ImageIcon(getClass().getResource("/imagen/fondo1.jpg"));
g.drawImage(imagenFondo.getImage(),0,0,tamanio.width, tamanio.height, null);
/*getdraw obtiene y aplica la imagen segun el tamaño declarado en la linea setSize(?,?)*/
setOpaque(false);
super.paintComponent(g);
}
}

Segundo Creamos el Jframe (Elimina la clase main si quieres para que el Jframe se ejecute solo),
pues bien haciendo click derecho en el jframe en la seccion de eventos alicar click izquierdo en el evento windowsactivate:

Codigo del Jframe

package pintar;

import java.awt.BorderLayout;

/**
*
* @author Fernando Perez
*/
public class lienzo extends javax.swing.JFrame {


public lienzo() {
initComponents();
}


@SuppressWarnings("unchecked")
//
private void initComponents() {

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 771, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 582, Short.MAX_VALUE)
);

pack();
}


private void formWindowActivated(java.awt.event.WindowEvent evt) {
pintar pintar_lienzo = new pintar();
this.add( pintar_lienzo , BorderLayout.CENTER);
pintar_lienzo.repaint();
// aqui la funcion incorporada repaint activa el pintado del Jframe
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
lienzo f = new lienzo();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});

}