sábado, 30 de julio de 2011

COLOCAR IMAGEN DE FONDO A UN JTABLE

Hoy veremos como colocar una imagen de fondo en un JTable para que se vea mas presentable colocando el logo de algunacompañía, yo puse el logo del instituto donde estudio, todo esto lo hacemos con una clase que pinta la imagen en un scrollpane la clase se la puede mejorar para darle una mejor apariencia a la imagen por que aun al seleccionar unítemse pone blanca la tabla.
este es elcódigoque pinta el scrollpane.
public void paint(Graphics g)
{
super.paint( g );
if( image != null )
{
Rectangle d = getViewport().getViewRect();
for( int x = 0; x d.width; x += image.getIconWidth() )
{
for( int y = 0; y d.height; y += image.getIconHeight() )
{
g.drawImage( image.getImage(), x, y, null, null );
}
getViewport().setBackingStoreEnabled(false);
}
}
}

Si lo imaginas,lo programas

Donate Car To Charity CALIFORNIA DONATE CAR FOR TAX CREDITDONATE CARS IN MADONATE YOUR CAR SACRAMENTOHOW TO DONATE A CAR IN CALIFORNIA DONATE YOUR CAR FOR KIDS,CAR INSURANCE QUOTES COLORADO ,NUNAVUT CULTURE,DAYTON FREIGHT LINESHARDDRIVE DATA RECOVERY SERVICES,DONATE A CAR IN MARYLAND,MOTOR REPLACEMENTS,CHEAP DOMAIN REGISTRATION HOSTING,DONATING A CAR IN MARYLANDMundial Football Los Abogado de lesiones personales en Chicago,FIFA World Cup son muy buenos en chicago y nos ofrecen una Cotizacion de seguro y Cotizacion de Seguro de Vida y Cotizacion de seguro de coches,mesotelioma. Y visitar mesothelioma lawyers o tambien podriamos visitar mesothelioma symptoms y lexington law tambien many people lexington law firm and merlin olsen mesothelioma many people mesothelioma trial lawyers and atlanta mesothelioma lawyers Mesothelioma law firm, massachusetts mesothelioma attorney EEUU,Selling annuity payments for cash,Sell my structured settlement,Sell structured settlement,Structured settlement,Structured settlement companies,Sell my annuity payments lump sum,Car accident lawyer Denver,Accident injury attorneys,Sell my annuity

viernes, 29 de julio de 2011

Cambio de Skin y Idiomas permanentes en Java


Hoy veremos como cambiar los temas o skin de nuestras aplicaciones java ytambiénel cambio de idioma de laaplicaciónque es muy utilizada en aplicaciones que van hacer distribuidas por todo el mundo,pero para hacer los cambios permanentes al iniciar o ejecutar de nuevo laaplicaciónyaparezcanlos cambios,esto se deben de guardar en un archivocomenzamos.

la claseconfiguración: es la encargada de realizar lacreacióny lectura del fichero(archivo)


private StringLeer_configuracion() throws FileNotFoundException, IOException{
String tmp_c="";
fr = new FileReader(archivo);
br = new BufferedReader(fr);
String linea = null;
while ((linea = br.readLine()) != null) {
tmp_c = tmp_c + linea;
}
fr.close();
return tmp_c;
}
private void token(String s){
StringTokenizer tokens = new StringTokenizer(s,"/");
while(tokens.hasMoreTokens()){
vector.addElement(tokens.nextToken());
}
}

public booleanGuardar_Configuracion(String t){
boolean ok = false;
try {
fichero = new FileWriter(archivo_de_configuracion);
pw = new PrintWriter(fichero);
pw.println(t);
ok = true;
fichero.close();
} catch (IOException ex) {
Logger.getLogger(configuracion.class.getName()).log(Level.SEVERE, null, ex);
}
return ok;
}

la clase lenguaje: se encarga de leer los archivos .properties muyutilizadospara configuraciones


public lenguaje(String idioma){
if(idioma.equals("Español")){//español
getProperties("español.properties");
}else if(idioma.equals("Inglish")){//Ingles
getProperties("ingles.properties");
System.out.println("ENTRO EN INGLES");
}else{//sino por default idioma español
getProperties("Español");
}
}

/* se leen las propiedades */
private void getProperties(String idioma) {
try {
this.load( getClass().getResourceAsStream(idioma) );
} catch (IOException ex) {
}
}

y la clase principal:en cargada de lainterfazde usuario y de ejecutar losmétodosy funciones par el cambio de las configuraciones


public void dame_idioma(String id)
{
len=new lenguaje(id);
eti_skin.setText(len.getProperty("skin"));
eti_lenguaje.setText(len.getProperty("idio"));
eti_nombre.setText(len.getProperty("nomb"));
eti_apellido.setText(len.getProperty("apell"));
boto_guardar.setText(len.getProperty("bt_guar"));
boto_acerca.setText(len.getProperty("bt_acer"));
joptio=len.getProperty("JOP");
}


confi.Guardar_Configuracion("/"+skin+"/"+combo_idioma.getSelectedItem().toString());

Si lo imaginas,lo programas

MESOTHELIOMA LAW FIRMDONATE CAR TO CHARITY CALIFORNIAHARDDRIVE DATA RECOVERY SERVICESDONATE A CAR IN MARYLAND DONATING A CAR IN MARYLAND,DONATE CARS ILLINOIS,CRIMINAL DEFENSE ATTORNEYS FLORIDA ,BEST CRIMINAL LAWYER IN ARIZONASTRUCTURED ANNUITY SETTLEMENT,ASBESTOS LAWYERS,NUNAVUT CULTURE,DAYTON FREIGHT LINES ,Bextra Bankruptcy Dental Plan Private JetMundial Football Mesothelioma law firm,mega life and health FIFA World Cup es un buen servicio en las distintas naciones trans union pero resulto que tenia cancer y fui a asbestos cancer y me dijeron en asbestos mesothelioma que tambien padecia de prostate cancer treatment y un daño tremendo a mi organismo fui a malignant pleural mesothelioma,asi que hice un prestamo en credit repair y otro en chase credit pero de pronto un anti spam software asi que decido un auto en rental car in costa rica me registre en Facebook en internet domain registration y tambien obtuve un domain registration,Selling annuity payments for cash,Selling annuity payments for cash,Sell my structured settlement,Sell structured settlement,Structured settlement,Structured settlement companies,Sell my annuity payments lump sum,Car accident lawyer Denver,Accident injury attorneys,Sell my annuity

FÁCIL NAVEGADOR WEB

En java esfácilpoder desarrollar un navegador se lo puede realizar con laherramientaJEditorPane o JTextPane ,pero no siempre seobtienelo que se quiere suele dar complicaciones las paginas html capturadas lamayoríade las veces salen desordenadas y hay que realizar un sin numero demétodospara que salgan bien, existe unaslibreríasque nos libra de esta molestia y nos hacen ahorrar muchocódigoque es muy importante las cuales sonDJNativeSwing.jar ,DJNativeSwing-SWT.jar que sonlibreríasnativas de swing las pueden descargaraqui, y la otralibrería esswt.jar que viene en el proyecto de descarga
este es el objeto que nos permite capturar paginas web el cual le damos un valor URL(ruta odirección)
JWebBrowser navega_web = new JWebBrowser();
/****************************************/
navega_web.navigate(web); //obtieneel valor URL



Si lo imaginas,lo programas

MESOTHELIOMA LAW FIRMDONATE CAR TO CHARITY CALIFORNIAHARDDRIVE DATA RECOVERY SERVICESDONATE A CAR IN MARYLAND DONATING A CAR IN MARYLAND,DONATE CARS ILLINOIS,CRIMINAL DEFENSE ATTORNEYS FLORIDA ,BEST CRIMINAL LAWYER IN ARIZONASTRUCTURED ANNUITY SETTLEMENT,ASBESTOS LAWYERS,NUNAVUT CULTURE,DAYTON FREIGHT LINES ,Bextra Bankruptcy Dental Plan Private JetMundial FootballFIFA World Cup Vestidos de Perros y gatosHosting Dominio web movilSelling annuity payments for cashSelling annuity payments for cash,Sell my structured settlement,Sell structured settlement,Structured settlementStructured settlement companies,Sell my annuity payments lump sum,Car accident lawyer Denver,Accident injury attorneys,Sell my annuity

miércoles, 27 de julio de 2011

COMO EXPORTAR DATOS DE UN JTABLE A UNA HOJA DE EXCEL



hoy veremos una forma para exportar datos de un JTable(tabla) a una hoja de excel, estemétodoles sirve mucho a losdesarrolladoresque manejan base de datos y necesitan exportar los datos visualizados en una tabla a una hoja de excel obviamente ya existen los reportes que ahorra dolores de cabeza a los programadores, pero veremos como hacerlo, primero necesitamos unalibreríaque se llamajxl.jar (que esta incluida en el proyecto de descarga)que nos ayuda a crear la el archivo de excel .

este codigo fuente me realiza el almacenamiento de todos los datos en el JTable que los coloca en un array y en otro agregando el nombre que va a tener la hoja y colocarlos en elmétodode exportacion, luego se procede a llamar el archivo excel.

try {
/******************AGREGO EL JTABLA A UN ARRAY***************************/
ListJTable tb = new ArrayListJTable();
//***************NOMBRE DE LA HOJA*************************/
ListString nom = new ArrayListString();
tb.add(tabla);
//-------------------------
nom.add("CLIENTES");
//-------------------
exportar_excel excelExporter = new exportar_excel(tb, new File("DATOS_EXPORTADOS.xls"), nom);
if (excelExporter.export()) {
JOptionPane.showMessageDialog(null, "DATOS EXPORTADOS CON EXITO!");
}
} catch (Exception ex) {
ex.printStackTrace();
}
llama();

Si lo imaginas,lo programas

martes, 26 de julio de 2011

COPIA DE SEGURIDAD DE MYSQL(BACKUP) EN JAVA

La copia de seguridad o respaldo de una base de datos es muy importante para el programador y aun mas para el propietario delsoftwarepor larazónque tiene todos los registros de los clientes otransacciones,veremos como respaldar una base de datos.
para conectarnosnecesitamosel host,el puerto,usuario y contraseña
estecódigofuente hace laconexión (se utiliza lainstrucciónRUNTIME, para ejecutar la sentencia),

Process run = Runtime.getRuntime().exec(
"mysqldump --host=" + host + " --port=" + puert +
" --user=" + usuar + " --password=" + password +
" --compact --complete-insert --extended-insert --skip-quote-names" +
" --skip-comments --skip-triggers " + db);

y este codigo se encarga de generar y escribir el archivo .sql

archivo = new FileWriter(ruta);
pw = new PrintWriter(archivo);





Si lo imaginas,lo programas

DIALOGOS DE WINDOWS PARTE 2

hoy veremos la segunda parte de losdiálogosde windows enestecaso tenemos aDirectoryDialog, esta herramienta solo presenta los directorios(carpetas y subcarpetas) , donde la carpetaescogidaretornara la ruta absoluta de esta, para utilizar este componente debemos de importar las mismaslibreríasque en el ejemplo anteriorswt.jar yswt-debug.jar que estan incluidad en el proyecto de descarga.
elcódigofuente para llamar alDirectoryDialog
dialogo = new DirectoryDialog(shell,SWT.OPEN);
dialogo.setText("ESCOJA LA CARPETA");
nom = dialogo.open();
//si se presiono el boton abrir
if ( nom !=null ){
//String fil=dialogo.getFileName();//ME DA EL NOMBRE DEL ARCHIVO
dir_archi=new File(nom);
txt_direccion.setText(""+dir_archi);//ME DA LA RUTA DEL ARCHVIO
}
else
{
System.out.println("SE PULSO CANCELAR");
}
Si lo imaginas,lo programas



DIALODOS DE WINDOWS PARTE 2


lunes, 25 de julio de 2011

DIÁLOGOS DE WINDOWS PARTE 1

varias veces he trabajado con esta herramienta el Filedialog de windows por larazónque la herramienta
JFileChooser es muy sencilla y de atributos muy pobres,para trabajar con este
Filedialognecesitamosunaslibreríasswt-debug.jar y swt.jar que viene en el poyecto de descarga.
este es el codigo fuente para llamar al Filedialog
dialogo = new FileDialog(shell,SWT.OPEN);
dialogo.setFilterNames ( nombres_filtros );
dialogo.setFilterExtensions ( extencion );
dialogo.setText("ESCOJE EL ARCHIVO");
nom = dialogo.open();
//si se presiono el boton abrir
if ( nom !=null ){
//String fil=dialogo.getFileName();//ME DA EL NOMBRE DEL ARCHIVO
dir_archi=new File(nom);
txt_direccion.setText(""+dir_archi);//ME DA LA RUTA DEL ARCHVIO
}
else
{
System.out.println("SE PULSO CANCELAR");
}

con esta herramienta le podemos dar una apariencia mas profesional a nuestras aplicaciones y ahorrarnos muchocódigo.

Si lo imaginas,lo programas

JFrame Personalizado con transparencia al presionar el mouse

hoy veremos una de las tantas maneras que podemos personalizar nuestras aplicaciones java para darles una forma mas atractiva por ejemplo la de cambiarle de fondo y hacer transparente este al presionar el mouse sobre el para ellodeberánde tener la maquina virtual de java JAVA SE 6 UPDATE 22 O SUPERIOR la pueden descargar en www.oracle.com . vamos alcódigofuente
para habilitar latransparenciadel formulario deben de importar lo siguiente
import java.lang.reflect.Method;
estainstruccióndeben de colocarla en el main, elsetWindowOpaque le quitara el fondo por defecto que tienes los JFRAME se puede utilizar en cualquier componente
try {
@SuppressWarnings("rawtypes")
//CON LA AYUDA DE LA LIBRERIA NATIVA AWTUtilities
Class clazz = Class.forName("com.sun.awt.AWTUtilities");
@SuppressWarnings("unchecked")
//Y DEL METODO setWindowOpaque PARA HACERLO TRANSPARENTE
Method method = clazz.getMethod("setWindowOpaque", java.awt.Window.class, Boolean.TYPE);
method.invoke(clazz,thisClass , false);
} catch (Exception e)
{ }
Para quitarle los bordes al JFrame se utiliza elcódigo
this.setUndecorated(true);
obviamente que al quitarle los bordes al formulario es imposible de moverlo con el mouse para eso creamos una clase que se llama mover esta clase se encarga de mover el componente seleccionado por toda la pantalla con la ayuda del evento mouseDragged, para realizar la transparencia recurrimos a los eventos delratónmouseReleased ymousePressed que al ser presionado el mouse sobre el componente la imagen cambia con una imagen transparente y listo se tiene un efecto muy atractivo lasimágenesla deben de diseñar enAdobe Photoshop para que las creen asu gusto.

Si lo imaginas,lo programas







sábado, 23 de julio de 2011

Como extraer imágenes de archivos JAR


Aveces me he preguntado si hay una manera de empaquetar nuestrasimágenescon el fin que los proyectos se han lo masligerosposiblescomprimiendo losen archivos jar como se hace esto, sencillo seleccionan lasimágeneso las carpetas y crean un archivo comprimido(winzip o winrar), luego le cambian el nombre si desean y luego colocar la extencion .jar y listo,despuésdeben de importar esa .jar comolibreríacon el fin de que se agregue al proyecto y no de problemas.
para extraer lasimágenesdel jarutilizamosesto
ImageIcon ico=new ImageIcon(getClass().getResource("1.png"));
el getResorce() sirve para obtener todos los recursos del proyecto en resumen el getClass() y el getResource() me dan larutaabsoluta del recurso señalado o requerido en este caso el nombre de la imagen

Si lo imaginas,lo programas




Como Generar un PDF con una imagen y una tabla


Esta vez veremos como generar reportes en formato pdf para eso tendremos que tener lalibreríaiText5.0.6.jar deben de importarla a su proyecto aqui los pasos.
Paso1)creen una carpeta dentro de su proyecto con el nombre lib
Paso2) copien la libreriaiText5.0.6.jar dentro de la carpeta lib
Paso3) si utilizan eclipse, denle click en su proyecto y presionen f5 para actualizar, luego click derecho y seleccionen el item buil Path seleccionen el subitemconfigure buil Path.
Paso4) seleccionen la pestaña libraries, luego click en el boton add.jars, buscan su proyecto y seleccionan la carpeta que creamos y seleccionan la libreriaiText5.0.6.jar,presionan ok y luego ok y listo esto sirve para cualquier libreria que quieran importar asu proyecto.
El codigo que me genera el pdf.

public voidcrea_pdf()
{
try {
//tamaño del documento A4
repor = new Document(PageSize.A4);
// se establece una instancia a un documento pdf
PdfWriter.getInstance(repor, new FileOutputStream("Reportes de deudores.pdf"));
repor.open();// se abre el documento
//instaciamos la imagen al pdf
Image imagen=Image.getInstance(("ima//ima.png"));
imagen.setAlignment(Image.TOP | Image.ALIGN_TOP);//TEXTWRAP
repor.add(imagen);
repor.add(new Paragraph(" "));
repor.add(new Paragraph(" "));
repor.add(new Paragraph(" "));
Paragraph par= new Paragraph(titu,FontFactory.getFont("Dialog", 26,Font.BOLD,BaseColor.BLUE));
par.setAlignment(Element.ALIGN_JUSTIFIED_ALL);
repor.add(par);
repor.add(new Paragraph(" "));
repor.add(new Paragraph("TABLA DE OBSERVACION",FontFactory.getFont("Dialog", 15,Font.BOLD,BaseColor.BLUE)));
repor.add(new Paragraph(" "));
/*******************CREACION DE UNA TABLA********************/
//COLOCAMOS CUANTAS COLUMNAS QUEREMOS 2
PdfPTable tabla=new PdfPTable(2);
//TODO EL ANCHO DE LA PAGINA
tabla.setWidthPercentage(100);
PdfPCell celda1 =new PdfPCell (new Paragraph("CLIENTES",FontFactory.getFont("Dialog",13,Font.BOLD,BaseColor.WHITE)));
celda1.setBackgroundColor(BaseColor.BLUE);
PdfPCell celda2 =new PdfPCell (new Paragraph("DEUDA",FontFactory.getFont("Dialog",13,Font.BOLD,BaseColor.WHITE)));
celda2.setBackgroundColor(BaseColor.BLUE);
tabla.addCell(celda1);
tabla.addCell(celda2);
for(int a=0; alis1.length; a++){
tabla.addCell(lis1[a]);
tabla.addCell(lis2[a]);
}
repor.add(tabla);
repor.add(new Paragraph("JavaFace",FontFactory.getFont("Dialog", 15,Font.BOLD,BaseColor.BLUE)));
repor.close();
JOptionPane.showMessageDialog(null,"Documento PDF creado");

} catch (DocumentException ex){ex.printStackTrace();}
catch (FileNotFoundException ex){}
catch (IOException e){ e.printStackTrace();}
llama_pdf();
}

Y la forma de como llamaremos al archivo pdf
public void llama_pdf()
{
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+"Reportes de deudores.pdf");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Si lo imaginas,lo programas



viernes, 22 de julio de 2011

Como almacenar datos en MYSQL

hoy veremos como desarrollar unaaplicaciónque almacene datos en mysql para aquellas personas quereciénimpiesan a realizaraplicacionesque almacenen datos este ejemplos les ayudara.comenzamos.
la claseprincipal es la encargada de mostrar datos(si hay en la base de datos) por medio de los botones denavegación ultimo,anterior,buscar,siguiente,primero esto lo hacemos con un
Vectordame_datos_persona lis_persona; que hereda los valores queestánalmacenados en las variables String de la clase dame_datos_persona
con estemétodoagregamos los datos al vector
//Permite almacenar un prodcuto en una posicion
public booleanAgregarPersona(dame_datos_persona p)
{
boolean ban = false;
try
{
lis_persona.add(p);
ban = true;
}catch(Exception e)
{
System.out.println("ERROR AL GUARDAR EL PRODUCTO "+e.getMessage());
ban = false;
}
return ban;
}
y este metodo para mostrar los datos almacenados en las cajas de texto por medio de los botones denavegaciónse llama almétodoy se le agrega unaposiciónMostrarPersonas(posicion);

private voidMostrarPersonas(int pos)
{
if(pos=0 && poslista_per.Tamaño())
{
LimpiarCajas();
txt_codigo.setText(lista_per.Obtener(pos).cod);
txt_nombre.setText(lista_per.Obtener(pos).nomb);
txt_apellido.setText(""+lista_per.Obtener(pos).apell);
txt_domicilio.setText(""+lista_per.Obtener(pos).direc);
int reg=posicion+1;
eti_cuantos_reg.setText(""+reg+" de "+lista_per.Tamaño());

}
}

para comunicarse con MYSQL se utiliza una clase llamadaConexionBD que se encarga de ejecutar las funciones ymétodosdeenvióde datos y de comunicarse con la base de datos
este funcion se conecta con MYSql
public staticConnection ConectarBD()
{
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/persona? user=root&password=");
//conn = DriverManager.getConnection("jdbc:mysql://192.168.4.154/bdmatricula?user=tercero&password=1234");
iscon=true;
System.out.println("conectoooooooooo a mysql");
}catch(Exception ex) {
System.out.println("eRROR NO SE CONECTO a mysql");
}
return conn;
}
y esta ejecuta las instrucciones SQL
//Ejecutar sentencias sql insert, update y delete
public static booleanEjecutarSql(String strsql)
{
boolean ok=false;
Statement stmt_consul=null;
try
{
System.out.println("iniciando consulta");
if(!iscon) conn=ConectarBD();
stmt_consul = conn.createStatement(); //crear sentencia
stmt_consul.executeUpdate(strsql); //ejecuta la sentencia
ok= true;
try {
stmt_consul.close();
conn.close();
iscon=false;
} catch (SQLException sqlEx) {ok=false;}
}
catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
ok=false;
}
return ok;
}
Si lo imaginas,lo programas


NOTA: Si les da problema el reportes es error de la imagen que aparece en el reporte deben de abrir el archivoreporte_personas.jrxml con el programaiReport-3.7.1 y colocar la imagen que ustedes quieran