jueves, 15 de julio de 2010

Software de Control de Nomina en java Gratuito

Pues bien aca esta un aporte personal que es un software de control de nominas para empresas con bases de datos Mysql, incluye pago de salarios, vacaciones, prestamos, utilidades, reportes completos en Ireport, todo enmarcado en un ambiente grafico 100% mediante menus contextuales, es una aplicacion sencilla y espero que las sea de utilidad.

Nota: incluye las librerias necesarias para funcionar en mysql e ireport.

link de descarga:

Software VIVECA - Control de Nomina en Java Gratuito:
----------------------------------------------
http://www.4shared.com/file/pbdIT8uf/VIVECA.html

Fuentes: PSD, Imagenes y .Font para VIVECA:
-------------------------------------------
http://www.4shared.com/file/HDaX0Vi3/PSD_VIVECA.html

Servidor Local MysQl Base de Datos:
-----------------------------------
http://www.4shared.com/file/5Aq5GXks/wamp5_144.html

Java Compilados a Ejecutables .exe para distribucion en O.S. Windows:
--------------------------------------------------------------------
http://www.4shared.com/file/j_E15Wzi/JavaExe__Crea_ejecutables_java.html

viernes, 18 de junio de 2010

Validar Jtexfield solo numeros con formato decimal y simbolo de monedas

package panadero;

import java.text.DecimalFormat;
import javax.swing.JOptionPane;

/**
*
* @author Fernando Perez (El Panadero)
* Codigo de ejemplo para validar un Jtexfiel en el evento KeyPresed
* de solo numeros con formato decimal para valores de moneda!!!
* funciona al presonar al tecla Enter de teclado.
*
*/
public class tu_jframe extends javax.swing.JFrame {
String form, moneda=" BsF.";
DecimalFormat formateador = new DecimalFormat("###,###.##");

public tu_jframe() {
initComponents();
}


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

jLabel1 = new javax.swing.JLabel();
texto1 = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Validar");

texto1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
texto1KeyPressed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(texto1, javax.swing.GroupLayout.PREFERRED_SIZE, 171, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(68, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(67, 67, 67)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(texto1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(94, Short.MAX_VALUE))
);

pack();
}//


@SuppressWarnings("static-access")
private void texto1KeyPressed(java.awt.event.KeyEvent evt) {
char a;
String sala="",sal="";
sal=texto1.getText();
//Tomamos el valor del objeto Jtexfield por un variable String, es de mi preferencia hacer
//esto ya que me permite aplicar todo tipo de formatos incluides en cualquier operacion numerica
if( evt.VK_ENTER == evt.getKeyCode() ) {//comparamos el valor de la tecla presionada con la tecla enter
for (int i=0; i < sal.length(); i++){
a = sal.charAt(i);
//Luego se determina la longitud de la cadena, para q atraves de la funcion charAt() se compare miembro a miembro
//los elemntos contenidos en el Jtexfield para extraer a una nueva variable de cadena solo los caracteres permitidos, se aplica a una diversidad de opciones si se estudia con cuidado.
if (a == '1'){sala=sala+"1";}
if (a == '2'){sala=sala+"2";}
if (a == '3'){sala=sala+"3";}
if (a == '4'){sala=sala+"4";}
if (a == '5'){sala=sala+"5";}
if (a == '6'){sala=sala+"6";}
if (a == '7'){sala=sala+"7";}
if (a == '8'){sala=sala+"8";}
if (a == '9'){sala=sala+"9";}
if (a == '0'){sala=sala+"0";}
}
texto1.setText(String.valueOf(formateador.format(Double.parseDouble(sala))+moneda));
//Pues bien ya tenemos la cedena validad y ahora aplicamos la funcion DecimalFormat para darle la apariencia que necesitamos.
if(sala.length()>0){
texto1.requestFocus();}else{texto1.setText("0");JOptionPane.showMessageDialog (null, "Tu Jtexfield es=0, es eso correcto?");}

} // TODO add your handling code here:
}


public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new tu_jframe().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JTextField texto1;
// End of variables declaration

}

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);
}
});

}