martes, 27 de agosto de 2013

Extrae todos los datos de un JTable y guardalos todos en una Tabla MYSQL al mismo tiempo en java


Mas de una ocasión me han preguntado como extraer todos los datos de un JTable y guardar esos datos en una Tabla MySql ,así que para cumplir con esas dudas hoy les enseño como.

Primero que debemos de hacer?
primero que todo tengo que extraer todos los datos insertados en el JTable y almacenar estos datos en un Array en este caso voy a utilizar unArrayListStringque es ideal y mucho mas fácil manejar.
ante que todo tengo que saber cuantasFilas yColumnas tiene el JTable para esto existen los metodos:getRowCount()método que me retorna el numero de filas existente ygetColumnCount() que me retorna el numero de columnas con estos métodos formare dos buclesfor asi podre recorrer filas y columnas por medio del métodogetValueAt(filas ,columnas) que me recibe el numero de filas y el numero de columnas y que me retornara todos los datos que se han recorrido.


for(int i=0; itabla.getRowCount(); i++) //recorro las filas
{
for(int a=0; atabla.getColumnCount(); a++) //recorro las columnas
{
full_datos.add(modelo.getValueAt(i ,a).toString());
}
}


de esta forma tendré almacenado todos los datos dentro delArrayList.este ArrayList tendremos que pasarle los valores a unIterator para luego recorrer los valores y ser almacenados dentro de un vector estos valores tendrán que ser cortados por un control que que hace referencia al numero de columnas de la tabla en MySql0,1,2 una vez que añadimos los valores al Vector tendré que eliminar esos valores delIterator ,y luego procedemos alamacenar los valores del vector a la Tabla MySqlFila porFila
 Vector datosGuardar=new Vector(1);
int cont=-1;
IteratorString nombreIterator = full_datos.iterator();
while(nombreIterator.hasNext()){
cont++;
String elemento = nombreIterator.next();
if(cont=2){
datosGuardar.addElement(elemento);
nombreIterator.remove();
}

}





Ahora necesito verificar la existencia de datos en la Tabla donde tengo que insertar los datos del JTable
esto lo hago con el fin de saber el numero de registros que existen en la Tabla de la base de datos estos deben ser igual al numero de registros del JTable .

try {
ResultSet rs=ConexionBD.Consulta("SELECT * FROM masi_produc");
if(rs.next()){

int num_filas= ConexionBD.CuantasFilas("masi_produc");

if(num_filas==filas){
hay_datos=false;
}
else{

GuardarDatos(columnas);

}
num_datos.setText(num_filas+" de "+filas+" Datos");


}
else{
GuardarDatos(columnas);
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



como podrá ver formo una consulta simple para determinar si existen datos, si no existen o la tabla esta vacía elResultSet.next() me retornara un valorbooleano falso es ay donde insertamos la primera linea proveniente del método GuardarDatos(columnas); , y si existieran datos elResultSet.next() nos retornara el valorbooleano true aquí es donde utilizamos el métodoCuantasFilas(campo) de la claseConexionBD este método me recibe el nombre de la tabla MySql donde voy a guardar los datos y me retorna el numero de filas que posee esa tabla, y cuando el numero de filas sea igual al numero de filas del JTable este dara paso a una variable booleanaque detendra el HILO que llama a este proceso.


public void run()
{

while(main.hay_datos){

main.VerificarDatos();
}

}



les dejo el codigo fuente completo mas la base de datos .


DESCARGAR




,

lunes, 26 de agosto de 2013

Mostrar varias imágenes con controles anterior y siguiente (Carrousel simple) con jQuery


Hace poco me pidieron realizar un ejemplo sencillo sobre un carrousel simple con jQuery ,este carrousel muestra imágenes por medio de dos controlesAnterior ySiguiente puede ser útil no solo para mostrar imágenes si no cualquier uso que le demos como por ejemplo: mostrar formularios para un registro o cual quier otro uso.
aquí puedes ver un demo de ello ↓↓



Como lo hacemos?
primero debemos de estructurar nuestro carrousel ya sea el uso que le demos las partes o contenedores que necesitamos son la cabecera (header)en donde tengo los nombres de las imágenes y la parte central que son todassection son los contenedores de las imágenes cada una con un ID diferente.
ahora por medio de jQuery necesito extraer cuantos contenedoressection tengo, para eso le digo alselect de jQuery que me busque en el contenedor cuyo ID escont_paneles y añadiendo el signo de mayor que"" yel elementosection elselect nos retornara un array con todos los elementos encontrados.

var section = jQuery('#cont_panelessection');



Ahora vamos a ocultar todos los elementossection para ello antenpongo en la variablesection el métodohide();(ocultar)este método me oculta todos los elementos pero necesito que el primer elemento este visible entonces llamo al métodofirst();(primero) este método me seleccionara el primer elemento pero aun sigue oculto, entonces llamo al métodoshow(); (mostrar) con eso podre mostrar el primer elemento y dejar a los otros ocultos.

var section = jQuery('#cont_panelessection');
section.hide().first().show();
var mostrar_section = 0;


también creo una variable de tipo entero cuyo valor sea cero, como les dije anterior mente elselect nos retorna un array que esta almacenado en la variablesection,entonces necesito recorrer ese array ese elemento para eso utilizo el métodoeq() este método me recibe el indice o la posición del elemento que necesito manipular o en este caso ocultar o mostrar.

section.eq(mostrar_section).hide();
mostrar_section = (mostrar_section + 1 section.length) ? mostrar_section + 1 : 0;
section.eq(mostrar_section).show();



luego hago un pequeño control para incrementar las posiciones y dar paso a que se muestren las otrassection cada que vez que se haga click en el botón siguiente.
de la misma forma pero decrementando podemos retroceder las imágenes en este caso seriaanterior .


var section = jQuery('#cont_panelessection');
var botones= jQuery('#cont_cabezainput[type="button"]');
var mostrar_section = 0;
var pintar_boton=0;

section.hide().first().show();
botones.first().addClass('activa_button');

jQuery("#bto_siguiente").click(function() {
section.eq(mostrar_section).hide();//oculto el primer panel que esta en la posicion 0
botones.eq(pintar_boton).removeClass('activa_button');
mostrar_section = (mostrar_section + 1 section.length) ? mostrar_section + 1 : 0;
pintar_boton=(pintar_boton + 1 botones.length) ? pintar_boton + 1 : 0;
section.eq(mostrar_section).show(); // muesta el siguiente
botones.eq(pintar_boton).addClass('activa_button');
});

jQuery("#bto_anterior").click(function() {
section.eq(mostrar_section).hide();
botones.eq(pintar_boton).removeClass('activa_button');
mostrar_section = (mostrar_section 0) ? mostrar_section - 1 : section.length - 1;
pintar_boton = (pintar_boton 0) ? pintar_boton - 1 : botones.length - 1;
section.eq(mostrar_section).show(); // muestra el anterior
botones.eq(pintar_boton).addClass('activa_button');
});



les dejo el código fuente completo


DESCARGAR







, ,

Descargate este Pack de ejemplos HTML5


Hoy comparto con ustedes un Pack deejemplos HTML5 ideal para principiantes que quieran tener una idea de lo que es HTML5 y todo lo que se puede hacer con este lenguaje web.

Contenido del Pack

  • @fontface para iconos vectoriales
  • Canvas
  • Contentenedor Editable
  • File API
  • Geolocalización
  • GetUserMedia
  • LocalStorage _ SessionStorage
  • Modernizr
  • multimedia
  • Responsive
  • Semántica
  • SVG
  • CSS3


DESCARGAR



martes, 20 de agosto de 2013

descargate este MegaPack de ejemplos Js,jQuery,Html5 desarrollados por lewebmonster (56 ejemplos)


Hace 3 diasCali Rojas administrador y programador de lewebmonsterpuso a disposición todos sus ejemplos y proyectos explicados en su sitio web, en este sitio podrán encontrar varios tutoriales sobre desarrollo web y sobre los lenguajes mas usado para crear paginas webjavascript, Html5, JQuery. PHP, CSS, MySQL, Linux.

Contenido del MegaPack
  • Acordeon vertical-horizontal con css3
  • Agenda local storage html5-y-jquery
  • Animacion de escenarios con jquery
  • Animar la posición con transiciones css3
  • Animar personaje de juego con javascript
  • Buscar en tablas jquery
  • Cambiar la opacidad de elementos jquery
  • Carrusel de imagenes jquery-sin-plugins
  • Checkbox personalizado usando clases-y-jquery
  • Colapsar y expandir contenido-html5
  • Confirmar abandonar pagina con javascript
  • Control color html5
  • Control range html5
  • Crear efecto circular con jquery
  • Crear una capa flotante con jquery
  • Detectar pulsaciones de teclas con jquery
  • Efecto caida de nieve con jquery
  • Efecto cubo 3d con jquery
  • Efecto hover en imagenes con jquery
  • Efecto rollover en cruz con-jquery
  • Efecto scratchcard con jquery
  • Efectos de fondo con css3
  • Efecto texto 3d con css3
  • El atributo contenteditable de html5
son alrededor de 56 ejemplos y proyectos web , que estoy mas que seguro que te sirvieran mucho(Totalmente Recomendado :D)



DESCARGAR


,

lunes, 19 de agosto de 2013

Descargate y aprende a trabajar con fuentes web ideal para los diseñadores web


Marlon Ceballos te presenta su cursoTrabajo con fuentes web. Dale vida a tus sitios con fuentes optimizadas.

En este curso video2brain conocerás los más importantes servicios de fuentes web y aprenderás a usarlas en tus sitios.

sabrás sobre la compatibilidad actual de laregla @font-face con los diferentes navegadores así como la compatibilidad de los diferentes formatos de fuentes web y el motivo por el cual se los usa.

Dentro del curso conocerás desde cómo descargar una fuente y convertirla a diferentes formatos que den soporte a todos los navegadores para después insertar el código en tu proyectoHTML y usarlo medianteCSS hasta el uso de las opciones de aplicaciones comoDreamweaver,Muse y Edge Animate que permiten trabajar con servicios comoEdge Web Fonts y Type sin tener que usar código. (Recomendado).



DESCARGAR

miércoles, 14 de agosto de 2013

Descargate y aprende sobre Desarrollo con Android Cliente de Twitter 2013


Enrique López Mañas te presenta su cursoDesarrollo para Android: cliente de Twitter. desarrolla tu propia aplicación nativa para Android.

En este curso video2brain aprenderas a usar el entorno de desarrollo de Android y las herramientas necesarias para poder trabajar con el emulador. En una primera introducción teórica se analizarán diferentes módulos y bloques de desarrollo. Es necesariodominar Java para poder realizar este curso, y estar familiarizado con los fundamentos de Android.

Aprenderas :

  • Almacenamiento de datos en Android: aprenderás a usar el Framework Android que permite persistir datos a lo largo de la ejecución de un programa. Se analizarán las mejores técnicas en función de los datos a guardar.
  • Framework de preferencias:también aprenderás cómo se pueden almacenar las preferencias de usuario, y cómo se le pueden presentar de una manera sencilla y limpia al usuario final.
  • Servicios: en esta sección veras cómo se pueden realizar conexiones con un servidor para obtener datos del mismo, así como las mejores técnicas para realizar una conexión eficiente.
  • Cliente de Twitter: como paso final, aprenderás cómo se desarrolla una aplicación práctica, tal como un mini cliente de Twitter, paso a paso desde el comienzo, viendo cuáles son las etapas más relevantes y los módulos más importantes, para terminar con su subida a Google Play, tienda de aplicaciones y juegos de Google.



DESCARGAR

martes, 13 de agosto de 2013

Extraer la imagen de un JLabel y convertirla a Array de bytes y guardarla en una base de datos en java


Apeticion de un integrante del grupo I.R.P-LEGION, el cual tenia problemas para extraer el icono de un JLabel y convertirla a Array de bytes para luego guardarla en una base de datos ,hoy les enseño como realizar este procedimiento no muy aconsejable ya que la base de datos va a crecer considerablemente.

Primero necesito extraer la imagen o icono del JLabel para esto existe el métodogetIcon() que me retorna el icono o imagen del JLabel,luego necesito transformar este valor de retorno que es unIcon aImage para luego ser convertido en array de bytes por un método llamado
getTransFoto(Image image) este método me recibe el valor de tipo Image que acabamos de transformar para luego proceder a convertirlo a array de bytes por medio de unByteArrayOutputStream(me implementa un flujo de salida en donde se escriben los datos en una matriz de bytes).

private byte [] getTransFoto(Image image) {
ByteArrayOutputStream baos=null;
try {

baos = new ByteArrayOutputStream();
BufferedImage bufferedImage = createBufferedImageFrom(image);
ImageIO.write(bufferedImage, "jpeg", baos);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return baos.toByteArray();
}


luego de ser convertido en array de bytes podemos realizar el proceso para almacenar la cadena de bytes dentro de una tabla cuyo campo debe de ser de tipoBlob .

Pero puedo convertir la cadena de bytes de nuevo a Imagen?
una vez que ya tengamos almacenada la cadena de bytes ,tambien podremos convertir esa cadena a Image, para ello necesito utilizar la claseToolkit y llamar a los metodosgetDefaultToolkit().createImage(bytes) este ultimo me recibe una cadena de bytes y crea unaImage este valor imagen lo retornamos a una variable de tipoImage,para eso creo una metodo que me reciba una sentencia SQL para realizar una consulta simple y extraer esa cadena de bytes que sera convertida aImage este método se llamagetFotografia(String sql,String campo).

public  Image getFotografia(String sql,String campo){ 
Image data=null;
try{
//se lee la cadena de bytes de la base de datos
ResultSet rs;
rs=ConexionBD.Consulta(sql);
while (rs.next()) {
byte[] b = rs.getBytes(campo);
data = ConvertirImagen(b);
}

// esta cadena de bytes sera convertida en una imagen

} catch (IOException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
}catch(SQLException e){
System.out.println(e);
}
return data;
}


Ahora para redimensionar las imágenes al tamaño del JLabel también creo un Método que me recibe el valor de Image y un JLabel, congetScaledInstance() puedo redimensionar la imagen al tamaño del JLabel y retornar el valor a unImageIcon().


public ImageIcon DameFoto(Image image,JLabel label){

ImageIcon imageScalada = new ImageIcon(image.getScaledInstance(guardar_imagen.getWidth(),guardar_imagen.getHeight(),Image.SCALE_DEFAULT));

return imageScalada;
}

les dejo el codigo fuente completo mas la base de datos.


DESCARGAR
,

lunes, 12 de agosto de 2013

JComboBoxBD Multi Columna carga varios datos en un JComboBox desde Mysql


Hace poco vimos como cargar datos desdeMysql a un JComboBoxhoy les enseño como añadir mas de un item al JComboBox es bastante útil cuando es necesario mostrar mas de un item ,por defecto el JComboBox no permite esto asta donde yo se , asi que podemos modificarlo para añadir otra columna pero antes de alterar sus estructura lo cual sera un poco mas difícil vamos por otro camino como muy pocos sabrán se pude fusionar HTML y Java ,asi que me baso en unaTabla HTML para lograr lo que necesito, este Componente es uno que hacen fila de la libreria que cree ase tiempo y que nunca puede terminar asi que prefiero compartir pedazos de códigos a que queden en mi disco duro.

Pero como añado una Tabla HTML a un componente de Java?
se puede añadir HTML a varios componente de java y este poder adaptarlo correctamente sin problemas y no es todo puedo darle estilos a la tabla por medio de CSS , asi que sabiendo eso creo un documento simple HTML dentro de una variable STRING.

  str = "html" +
"style type=text/css"+
".estilo1{font-family:"+getFontFirstColumn().getFamily()+"; "+"font-weight:"+fuente(getFontFirstColumn().getStyle())+";"+"font-size:"+getFontFirstColumn().getSize()+"px;"+"color:rgb("+getColorFirstColumn().getRed()+","+getColorFirstColumn().getGreen()+","+getColorFirstColumn().getBlue()+");"+"}"+
".estilo2{font-family:"+getFontSecondColumn().getFamily()+"; "+"font-weight:"+fuente(getFontSecondColumn().getStyle())+";"+"font-size:"+ getFontSecondColumn().getSize()+"px;"+"color:rgb("+getColorSecondColumn().getRed()+","+getColorSecondColumn().getGreen()+","+getColorSecondColumn().getBlue()+");"+"}"+
"/style"+
"table width='"+ancho+"'"+"" +
"tr" +
"td class=estilo1 align='left'" + leftText;
str = str + "/tdtd class=estilo2 align='right'" +
rightText + "/td/tr/table/html";


dentro de esta variable String creo una cadena con las etiquetasHTML y las clases CSS para formar una sola cadena que me recibe valores que serán los items de cada columna y los valores que alteran la tabla para darle un estilo,tipo de fuente,color de fuente todos esos toda esta codificación tendrá que estar dentro de una clase llamadaTableItem esta clase me recibe los valores de cada columna en Array String para luego retorna los items y ser añadidos al JComboBox.

private void addItemColum(String[] left, String right[])
{
if(left.length 1 && right.length1)
{
for(int i=0; ileft.length; i++)
{
this.addItem(new TableItem(this,left[i], right[i]));
}
}

}


por medio del métodoaddItemColum(L,R) que esta en la clasejComboBoxBD puedo añadir items creado dos variables Array String manualmente .

String nombre[]={"Pedro","Pablo","Maria","Eudalia"};
String años[]={"22","20","15","18"};
combo_box_union.addItemColum(nombre, años);


de esta forma podemos añadir items a cada columna,pero manual mente.

Pero si quiero cargar datos desde Mysql?
para ello necesito utilizarArrayListString con el ArrayList podremos almacenar los valores que retorna la consulta SQL cabe recalcar que aquí necesitamos utilizar dos campos de la tabla ya que son dos columnas en el JComboBox , luego que que los ArrayList este cargados le pasamos el valor a dos variables Arrary String ,estas dos varibles seran los valores que recibirá el métodoaddItemColum(String[] left, String right[]) , para luego ser añadidos al JComoBox por medio de addItem();


public void setInjectSQLDobleColumn(String sql,String campo1,String campo2){

try{

ResultSet rs;
rs=ConexionBD.Consulta(sql);
ArrayListString col1 = new ArrayListString();
ArrayListString col2 = new ArrayListString();

while (rs.next()) {
col1.add(rs.getString(campo1));
col2.add(rs.getString(campo2));

}
String [] itemCol_1 = new String [col1.size()];
String [] itemCol_2 = new String [col2.size()];
col1.toArray(itemCol_1);
col2.toArray(itemCol_2);
addItemColum(itemCol_1, itemCol_2);

}
catch(Exception ex){
System.out.println("ERROR EN AL CARGAR DATOS");
}

}


Como retorna los dos valores del Item selecionado ?
para eso necesito recrear dos métodos que reciban y retornen los datos dentro de estos dos metodos estara instanciada la claseTableItem y el valor que recibira los métodos seran de tipo Object .

 public String getLeftText(Object obj)
{
TableItem item = (TableItem)obj;
return item.getLeftText();
}
public String getRightText(Object obj)
{
TableItem item = (TableItem)obj;
return item.getRightText();
}


utilizando los métodos dentro de un eventoactionPerformed.

combo_box_union.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {

txt_nombre.setText(combo_box_union.getLeftText(combo_box_union.getSelectedItem()));
txt_curso.setText(combo_box_union.getRightText(combo_box_union.getSelectedItem()));

}
});


les dejo el codigo fuente completo mas la base de datos.


DESCARGAR

,

viernes, 9 de agosto de 2013

jComboBoxBD carga datos en un JComboBox desde Mysql con java fácil y rapido


Hoy les enseño como cargar un JComboBox con datos provenientes de una base de datos MySql ,este ejemplo lo hice con el fin de ayudar a unos integrantes de un grupo en java el cual soy miembro.
Para ello cree una clasejComboBoxBD donde tengo un método muy sencillo pero bastante útil a la hora de cargar datos ,este método recibe dos valores String el primero la sintaxis SQL y el segundo elcampode la tabla en la base de datos que necesito para extraer los datos y añadadirlos al combo.

try{

ResultSet rs;
rs=ConexionBD.Consulta(sql);
while (rs.next()) {
this.addItem(rs.getString(campo));
}
}
catch(Exception ex){
System.out.println("ERROR EN AL CARGAR DATOS");
}


como podrán ver es bastante sencillo tengo mi claseResulSetdeclarada como variable la cual me recibe los valores que retorna la consulta de la claseConexionBD esta clase se encarga de conectarme a la Base de datos y el método Consulta de ejecutar lasentencia SQL luego necesito un siclo while para que el resulset sea recorrido por el método next() desde el primer registro y termina cuando el rs.next() sea null, y con el método getString() el cual me recibe el nombre del campo o el nombre de la columna de la base de datos que necesito extraer los valores este me los retorna para que sean añadidos al JComboBox .

Con este metodo podre realizar consultas ya sea simples o mas complejas como por ejemplo como seria si necesito unir DOS TABLAS y obtener un columna en especifico ?

combo_box_union = new jComboBoxBD();
combo_box_union.setInjectSQL("SELECT datos_varios.profesor AS profe FROM datos_persona INNER JOIN datos_varios ON (datos_persona.codigo = datos_varios.codigo);", "profe");




el métodosetInjectSQL(sql,campo) , se encarga de realizar la consulta y de añadir los items de esta manera podrán utilizar el elemento cuantas veces sea necesario sin tener ningún problema y ahorrar mas codigo. les dejo el codigo fuente completo



DESCARGAR
,

miércoles, 7 de agosto de 2013

Descargate software centinela control, desarrollado con Java y Mysql

   Descargate software centinela control,  desarrollado con Java y Mysql
Añadir leyenda



Descargate software centinela control, desarrollado con Java y Mysql


El presente software se desarrolló utilizando el lenguaje deprogramaciónJava ysgbdMysql, dentro de las funciones que posee dicho softwareestánlas de registro de clientes, registro detécnicos registro de equipos y materiales, registro de kits, registro de inspecciones,generaciónde reportes.
De esta forma, podemos destacar que dentro delcódigoque forma parte de este software seconseguiráncon consultas a la base de datos, para registrar, modificar y eliminar, igualmenteconseguircódigopara generar reportes utilizando laherramientade ireport.

¿Qué necesitamos?
Un IDE, Netbeans 7.3
Un gestor de base de datos MySql
La librería necesaria para conectar Mysql con Java (mysql-connector-java-5.1.6-bin - última versión a la fecha)
Las librerías necesarias para iReport (Añadidas en el RAR al final)
JasperReport para realizar el modelado de la Factura
Para conectar la aplicación a la base de datos deben ir hasta la carpeta " imas "Que se encuentra dentro del proyecto y modificar un fichero llamado archivo,Con el usuario y contraseña de su servidor de mysql, igualmentepodráncolocarladirecciónip en caso de que quieran conectarse de forma remota


La presente interfaz representa un formulario donde se vacían los datos de una inspección relazada, en la cual se pueden realizar consultas a la BD.



La presente interfaz permite registrar, modificar y eliminar equipos y materiales relacionados con los servicios que presta la empresa, para la instalación de sistemas devídeo centrales de alarmas entro otros



Esta interfaz permite la administración de los usuarios del sistema, pudiendo crear modificar y eliminar los mismos.




DESCARGAR







martes, 6 de agosto de 2013

Descargate y aprende sobre Enriquecimiento de sitios web con formularios y multimedia 2013



Dreamweaver CC 2: Enriquecimiento de sitios web con formularios y multimedia


Jorge González Villanueva te presenta su curso Dreamweaver CC 2: Enriquecimiento de sitios web con formularios y multimedia. Añade formularios y contenidos multimedia a tu sitio web.

Con este curso video2brain aprenderas a trabajar con Dreamweaver para crear contenidos HTML para todo tipo de dispositivos. aprenderasa añadir varios tipos de contenido HTML5 y a formatearlo usando el diseñador CSS. comenzaras con la construcción de contenidos.

comenzaras trabajando con enlaces y crearas la parte de navegación de tu sitio web de ejemplo. Además aprenderás a usar elementos de biblioteca para reutilizar el código y así automatizar tareas.

seguirás con la creación de formulariosHTML5 y veras su integración en Dreamweaver, y también utilizaras tablas para mostrar datos complejos. cómo añadir contenidos multimedia, aprenderas a crear una animación HTML5 creada con Adobe Edge Animate. Igualmente aprenderas a colocar contenido de vídeo y audio HTML5 y un archivo creado en Flash .(Recomendado).


DESCARGAR