Mostrando entradas con la etiqueta Java. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java. Mostrar todas las entradas

sábado, 30 de julio de 2016

Uso de ficheros Properties en Java

Hola amig@s en esta ocasión les mostrare como podemos hacer uso de un archivo de propiedades en Java Properties.java
package properties;

/**
 *
 * @author ElRinconPrograues
 */
public class Properties {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Propiedades p = new Propiedades();
        if (p.existe("info")) {
            p.getProperties("info");
            System.out.println(p.toString());

        } else {
            p.crearConfiguracionSistema();
            p.getProperties("info");
            System.out.println(p.toString());
        }
    }

}
Propiedades.java
package properties;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;

/**
 *
 * @author ElRinconPrograues
 */
public class Propiedades {

    private static String OS;
    private static String ARCH;
    private static String VERSION;
    private static String USER;
    private static String RUN_DIR;
    private static String USER_HOME;
    private Properties infoSistema;

    public Propiedades() {
        this.infoSistema = new Properties();
    }

    /**
     * *
     * Este metodo obtiene el contenido del archivo de propiedades
     *
     */
    public Properties getProperties(String name) {
        InputStream entrada = null;
        try {
            entrada = new FileInputStream(name + ".properties");
            //se crea una instancia a la clase Properties
            Properties propiedades = new Properties();
            //se leen el archivo .properties
            propiedades.load(entrada);
            //si el archivo de propiedades NO esta vacio retornan las propiedes leidas
            if (!propiedades.isEmpty()) {
                return propiedades;
            } else {//sino  retornara NULL
                return null;
            }
        } catch (IOException ex) {
            return null;
        } finally {
            if (entrada != null) {
                try {
                    entrada.close();
                } catch (IOException e) {
                    System.out.println(e.getMessage());
                }
            }
        }
    }

    /**
     * *
     * Este metodo guarda el archivo de propiedades
     *
     */
    public void saveProperties(String name, Properties conf) {
        OutputStream salida = null;
        try {
            salida = new FileOutputStream(name + ".properties");
            conf.store(salida, null);
        } catch (IOException io) {
            System.out.println("error al guardar el archivo properies");
        }
    }

    /**
     * *
     * Comprueba si el fichero existe
     *
     */
    public boolean existe(String name) {
        File fichero = new File(name + ".properties");
        return fichero.exists();
    }

    /**
     * *
     * borramos el fichero de propiedades
     *
     */
    public boolean borrar(String name) {
        File fichero = new File(name + ".properties");
        fichero.delete();
        return fichero.exists();
    }

    /**
     * *
     * Obtenemos los datos de nuestro sistema
     *
     */
    private static void getOS() {
        OS = System.getProperty("os.name");
        ARCH = System.getProperty("os.arch");
        VERSION = System.getProperty("os.version");
        USER = System.getProperty("user.name");
        RUN_DIR = System.getProperty("user.dir");
        USER_HOME = System.getProperty("user.home");
    }

    /**
     * *
     * crea el archivo de propiedades
     *
     */
    public void crearConfiguracionSistema() {
        getOS();
        infoSistema.put("runDir", RUN_DIR);
        infoSistema.put("user_home", USER_HOME);
        infoSistema.put("user", USER);
        infoSistema.put("arch", ARCH);
        infoSistema.put("version", VERSION);
        infoSistema.put("os", OS);
        saveProperties(OS.trim(), infoSistema);
    }

    @Override
    public String toString() {
        return "Propiedades{" + "infoSistema=" + infoSistema + '}';
    }

    /**
     * Agrega una nueva Propiedad addProperties(llave,valor)
     */
    public void addProperties(String key, String value) {
        infoSistema.put(key, value);
    }

    /**
     * Elimina una Propiedad
     */
    public void removeProperties(String key) {
        infoSistema.remove(key);
    }

    /**
     * remplaza el valor de una Propiedad
     */
    public void replaceProperties(String key, String value) {
        infoSistema.replace(key, value);
    }
}

Descargar el código: Dropbox Mega

miércoles, 9 de diciembre de 2015

Crear archivos Zip Java

Hola amig@s ahora les mostrare como crear archivos zip desde java, estos archivos podrán estar con y sin contraseña así como también se podrán comprimir capetas.

Codigo:
package elrinconprograues.zip;

import java.io.File;
import java.util.ArrayList;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.UnzipParameters;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;

/**
 *
 * @author Alex Callejas
 */
public class Zip {
    
    
    public void encryptedZipFile(String pass, String ruta, String archivo) {
        try {           
            ZipFile zipFile = new ZipFile(ruta +".zip");
            ArrayList filesToAdd = new ArrayList();
            filesToAdd.add(new File(archivo));
            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
            parameters.setEncryptFiles(true);
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
            parameters.setPassword(pass);
            zipFile.addFiles(filesToAdd, parameters);
        } catch (ZipException e) {
            System.out.println(e.getMessage());
        }
    }
    
    public void zipFile(String ruta, String archivo) {
        try {           
            ZipFile zipFile = new ZipFile(ruta +".zip");
            ArrayList filesToAdd = new ArrayList();
            filesToAdd.add(new File(archivo));
            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
            parameters.setEncryptFiles(false);
            zipFile.addFiles(filesToAdd, parameters);
        } catch (ZipException e) {
            System.out.println(e.getMessage());
        }
    }
    
    public void zipFolder(String ruta,String folder){
        try {
            ZipFile zipFile=new ZipFile(ruta +".zip");
            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
            parameters.setEncryptFiles(false);
            zipFile.addFolder(folder, parameters);
        } catch (ZipException e) {
            System.out.println(e.getMessage());
        }
    }
    
    public void zipFolderEncrypted(String ruta,String folder,String pass){
        try {
            ZipFile zipFile=new ZipFile(ruta +".zip");
            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
            parameters.setEncryptFiles(true);
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
            parameters.setPassword(pass);
            zipFile.addFolder(folder, parameters);
        } catch (ZipException e) {
            System.out.println(e.getMessage());
        }
    }
    
    public void unzip(String zip,String ruta){
        try {
            ZipFile zipFile=new ZipFile(new File(zip));
            zipFile.extractAll(ruta);
        } catch (ZipException e) {
            System.out.println(e.getMessage());
        }
    }
    
    public void unzip(String zip,String ruta,String pass){
        try {
            ZipFile zipFile=new ZipFile(new File(zip));
            UnzipParameters unzipParameters= new UnzipParameters();
            zipFile.setPassword(pass);
            zipFile.extractAll(ruta);
        } catch (ZipException e) {
            System.out.println(e.getMessage());
        }
    }
    
    public static void main(String[] args) {
        Zip zip=new Zip(); 
        //zip.zipFile("c:\\prueba\\pruebaZip", "c:\\prueba\\fichero.txt");
        //zip.encryptedZipFile("password", "c:\\prueba\\pruebaZipPass", "c:\\prueba\\fichero.txt");
        //zip.zipFolderEncrypted("c:\\prueba\\zipFolderPass", "c:\\prueba\\pruebaZip\\","password");
        zip.unzip("c:\\prueba\\zipFolderPass.zip", "c:\\prueba\\pruebaZip\\cc\\","password");
        //
    }
    
} 
 
 
 
Descarga código + librerías: MEGA

Enviar correos desde java

Hola amig@s esta vez les mostrare como enviar correos desde nuestra aplicación  java les enseñare como enviar correos unicamente con texto y tambien con archivos adjuntos.

Imagen:



Código:

package elrinconprograues.mail;

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

/**
 *
 * @author Alex Callejas
 */
public class SendMail {

    public static final String Username = "example@gmail.com";
    public static final String PassWord = "password";
    static Session session;
    static Properties props;

    public SendMail() {        
    }

    public Session sessionMail() {
        props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");
        session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    @Override
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(Username, PassWord);
                    }
                });
        return session;
    }
    
    public void send(String to,String msg){
        try {
            Message message = new MimeMessage(sessionMail());
            message.setFrom(new InternetAddress(Username));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse(to));
            message.setSubject("Subject");
            message.setText(msg);
            Transport.send(message);   
        } catch (MessagingException e) {
            System.out.println(e.getMessage());
        }
    }
    
    public void send(String to,String msg,String srcAttached){
        try {
            sessionMail();
            BodyPart attached = new MimeBodyPart();
            BodyPart texto = new MimeBodyPart();
            texto.setText(msg);
            MimeMultipart multiParte = new MimeMultipart();
            attached.setDataHandler(
                    new DataHandler(new FileDataSource(srcAttached)));
            attached.setFileName("File Name");
            multiParte.addBodyPart(texto);
            multiParte.addBodyPart(attached);
            Message message = new MimeMessage(sessionMail());
            message.setFrom(new InternetAddress(Username));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse(to));
            message.setSubject("Subject");
            message.setContent(multiParte);
            message.setText(msg);
            message.setContent(multiParte);
            Transport.send(message);            
        } catch (MessagingException ex) {
            System.out.println(ex.getMessage());
        }        
    }
    
    public static void main(String[] args) {
        SendMail sendMail=new SendMail();
        sendMail.send("example@mail.com", "Esta es una prueba de envio de correos con java");
    }
    
}

Descarga: Mega

domingo, 6 de diciembre de 2015

Excepciones propias en Java

Hola amig@s esta vez les mostrare como crear nuestras propias excepciones en java para hacer validaciones en nuestras aplicaciones dado que el lenguaje Java proporciona las clases que manejan casi cualquier tipo de excepción. Sin embargo, podemos imaginar situaciones en la que producen excepciones que no están dentro del lenguaje Java. Para poder crear nuestras propias excepciones debemos extender una nuestra clase con Exception de la siguiente manera:

<pre class="brush:js"><br />class MiExcepcion extends Exception {
public MiExcepcion(String msg){
super(msg);
}
}
</pre>

La definición de la clase es muy simple. Se le pasa un string msg, que contiene un mensaje, en el único parámetro que tiene el constructor de la clase derivada y éste se lo pasa a la clase base mediante super.

Ejemplo:

<pre class="brush:js"><br />class PruebaMiExcepcion{
//Clase interna
static class MiExcepcion extends Exception {
public MiExcepcion(String msg){
super(msg);
}
}

public static void main(String[] args) {
try{
vacio("");
}catch (MiExcepcion mi) {
System.out.println(mi.getMessage());
}
}

public static void vacio(String str) throws MiExcepcion{
if (str.equals("")) {
throw new MiExcepcion("El campo no debe estar vacio");
}
}
}
</pre>
 

Clase MySQLConnection java

Hola amig@s en esta ocasión les traigo algo diferente a lo habitual se trata de una clase de conexión para  MySQL  con la cual se pretende simplificar este proceso que suele ser algo tedioso, esta clase cuenta ademas de métodos para realizar las operaciones de insertar, modificar, eliminar y consultar a MySQL desde una aplicación java:

Código:

import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class MySQLConnection { String userName = "root"; String password = "root"; String url = "jdbc:mysql://localhost/"; String urlDriver = "com.mysql.jdbc.Driver"; String database = "database"; Connection con; Statement st; ResultSet rs; /** * constructor vacio * @usage MySQLConnection connect = new MySQLConnection(); */ public MySQLConnection() { } /** * @return retorna la conexion a la base de datos * @use Statement st = connect.OpenConnection().createStatement(); */ public Connection OpenConnection() { con = null; try { Class.forName(urlDriver).newInstance(); con = DriverManager.getConnection(url + database, userName, password); System.out.println("connect"); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { System.out.println(e.getMessage()); } return con; } /** * * @use connect.CloseConnection(connect.con) */ public void CloseConnection() { try { con.close(); System.out.println("close connection"); } catch (SQLException e) { System.out.println(e.getMessage()); } } /** * * @param con cierra la conexion a la base de datos * @use connect.CloseConnection(connect.con) */ public void CloseConnection(Connection con) { try { con.close(); System.out.println("close connection"); } catch (SQLException e) { System.out.println(e.getMessage()); } } /** * @param sql query para un select * @return rs retorno de la consulta efectuada caso contrario retorna null * @use */ public ResultSet executeQuery(String sql) { try { st = OpenConnection().createStatement(); rs = st.executeQuery(sql); return rs; } catch (Exception e) { System.out.println(e.getMessage()); } return null; } /** * * @param sql query para un select * @return rs retorno de la consulta efectuada caso contrario retorna null */ public boolean executeUpdate(String sql) { try { st = OpenConnection().createStatement(); rs = st.executeQuery(sql); return true; } catch (Exception e) { System.out.println(e.getMessage()); } return false; } /** * * @param pstm query para un select * @return rs retorno de la consulta efectuada caso contrario retorna null */ public ResultSet PreparedStatementExecuteQuery(PreparedStatement pstm) { try { rs = pstm.executeQuery(); return rs; } catch (Exception e) { System.out.println(e.getMessage()); } return null; } /** * * @param pstm query para un select * @return rs retorno de la consulta efectuada caso contrario retorna null */ public boolean PreparedStatementExecuteUpdate(PreparedStatement pstm) { try { pstm.executeUpdate(); return true; } catch (Exception e) { System.out.println(e.getMessage()); } return false; } /** * * @param sql query para crear un PreparedStatement para agregar los datos * @return rs retorno de la consulta efectuada caso contrario retorna null */ public PreparedStatement create(String sql){ try { PreparedStatement pstm=OpenConnection().prepareStatement(sql); return pstm; } catch (SQLException ex) { System.out.println(e.getMessage()); } return null; } }
Ejemplo de uso: Este es un pequeño ejemplo de un login utilizando dicha clase.

import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.sql.PreparedStatement; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException; public class Operations { Statement st; ResultSet rs; MySQLConnection mysqlconnect; PreparedStatement pstm; public Operations() { mysqlconnect = new MySQLConnection(); } public void insertUser(String user, String password, int accessLevel) { try { pstm = mysqlconnect.create("insert into usuario values(?,?,?)"); pstm.setString(1, user); pstm.setString(2,password); pstm.setInt(3, accessLevel); mysqlconnect.PreparedStatementExecuteUpdate(pstm); mysqlconnect.CloseConnection(mysqlconnect.con); } catch (SQLException | NoSuchAlgorithmException | UnsupportedEncodingException ex) { System.out.println("Error to insert: " + ex.getMessage()); } } public String getPassword(String user) { String pass = null; try { pstm = mysqlconnect.create("select password from usuario where user=?"); pstm.setString(1, user); rs = mysqlconnect.PreparedStatementExecuteQuery(pstm); rs.next(); pass = rs.getString(1); rs.close(); mysqlconnect.CloseConnection(); } catch (SQLException ex) { System.out.println("user not found: "+ex.getMessage()); } return pass; } }

viernes, 25 de septiembre de 2015

Buscar y Mostrar una consulta en una JTable con Java y MySQL

Hola amig@s en esta ocacion (despues de un largo tiempo c: ) les mostrare como hacer una busqueda en una base de datos MySQL por coincidencia de caracteres y mostrarla en una JTable de dos maneras diferentes lo primero sera crear nuestra clase Conexion la cual sera igual para ambas formas:

Conexion.java
package elrinconprograues.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Conexion {

    String userName = "root";
    String password = "root";
    String url = "jdbc:mysql://localhost/";
    String urlDriver = "com.mysql.jdbc.Driver";
    String database = "busqueda";
    private Connection con;
    Statement st;
    ResultSet rs;

    public Conexion() {

    }

    public void abrirConexion() {
        try {
            Class.forName(urlDriver).newInstance();
            con = DriverManager.getConnection(url + database, userName, password);
            System.out.println("Conexión a la BD");
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) {
            System.out.println("Error en conexion ");
            System.out.println(e.getMessage());
        }
    }

    public void cerrarConexion() {
        try {
            con.close();
            System.out.println("Conexión cerrada");
        } catch (SQLException e) {
            System.out.println("Error al cerrar conexión");
        }
    }
}

Forma #1

Lo primero que haremos sera crear 2 Arraylist globales en nuestra clase Conexion (o crear segun sean necesarios) dado que en este ejemplo tengo una tabla llamada persona con 2 campos el nombre y el otro para el apellido.
ArrayList nombre = new ArrayList();
ArrayList apellido = new ArrayList()

Ahora crearemos un metodo llamado busquedaPersona que recibira como parametro un String:
public void busquedaPersona(String bsq) {
        abrirConexion();
        nombre.clear();
        apellido.clear();
        try {
            st = con.createStatement();
            rs = st.executeQuery("select nombre,apellido from persona where nombre like '"+bsq+"%'");
            while (rs.next()) {
                nombre.add(rs.getString("nombre"));
                apellido.add(rs.getString("apellido"));
            }
            cerrarConexion();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

Con esto terminamos nuestra clase Conexion que quedaria de la siguiente manera:
package elrinconprograues.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class Conexion {

    String userName = "root";
    String password = "root";
    String url = "jdbc:mysql://localhost/";
    String urlDriver = "com.mysql.jdbc.Driver";
    String database = "busqueda";
    private Connection con;
    Statement st;
    ResultSet rs;
    ArrayList nombre = new ArrayList();
    ArrayList apellido = new ArrayList();

    public Conexion() {

    }

    public void abrirConexion() {
        try {
            Class.forName(urlDriver).newInstance();
            con = DriverManager.getConnection(url + database, userName, password);
            System.out.println("Conexión a la BD");
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) {
            System.out.println("Error en conexion ");
            System.out.println(e.getMessage());
        }
    }

    public void cerrarConexion() {
        try {
            con.close();
            System.out.println("Conexión cerrada");
        } catch (SQLException e) {
            System.out.println("Error al cerrar conexión");
        }
    }

    public void busquedaPersona(String bsq) {
        abrirConexion();
        nombre.clear();
        apellido.clear();
        try {
            st = con.createStatement();
            rs = st.executeQuery("select nombre,apellido from persona where nombre like '"+bsq+"%'");
            while (rs.next()) {
                nombre.add(rs.getString("nombre"));
                apellido.add(rs.getString("apellido"));
            }
            cerrarConexion();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

Por lo que continuaremos con nuestro JFrame el cual contendra un JTextField, un JButton y una JTable Primero crearemos una instancia de nuestra clase Conexion
Conexion con;

Y tambien una instancia de DefaultTableModel para nuestra tabla:
DefaultTableModel modelo;

Ahora las inicializamos en nuestro constructor y asignamos el DefaultTableModel a nuestra tabla:
public Busqueda() {
        initComponents();
        con=new Conexion();
        modelo = new DefaultTableModel();
        modelo = (DefaultTableModel) jTable1.getModel();
        jTable1.setModel(modelo);
    }

Tambien crearemos un metodo para borrar las filas de nuestra tabla cada vez que realicemos una busqueda:
 public void borrarTabla(){
        for (int i = 0; i < modelo.getRowCount();i++) {
            modelo.removeRow(i);
        }
    }

Luego crearemos el evento ActionPerformed en nuestro boton para realizar la busqueda y dentro de el llamaremos a nuestro metodo busquedaPersona de nuestra Clase Conexion y tambien crearemos un for con el cual llenaremos nuestra tabla con los datos de los ArraryList:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
      con.busquedaPersona(jTextField1.getText());
      borrarTabla();
        for (int i = 0; i < con.nombre.size(); i++) {
            modelo.addRow(new Object[]{con.nombre.get(i),con.apellido.get(i)});            
        }
}

Con esto estaria completa la primer forma de hacer una busqueda en MySQL.

 Forma #2

 Para nuestra siguiente forma la Clase Conexion seria practicamente la misma con la unica diferencia que no necesitaremos los ArrayList y nuestro metodo busquedaPersona no solo recibira un String como parametro sino que tambien reibira el DefaultTableModel de nuestra tabla por lo que quedaria de la siguiente forma:
package elrinconprograues.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.table.DefaultTableModel;

public class Conexion {

    String userName = "root";
    String password = "root";
    String url = "jdbc:mysql://localhost/";
    String urlDriver = "com.mysql.jdbc.Driver";
    String database = "busqueda";
    private Connection con;
    Statement st;
    ResultSet rs;

    public Conexion() {

    }

    public void abrirConexion() {
        try {
            Class.forName(urlDriver).newInstance();
            con = DriverManager.getConnection(url + database, userName, password);
            System.out.println("Conexión a la BD");
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) {
            System.out.println("Error en conexion ");
            System.out.println(e.getMessage());
        }
    }

    public void cerrarConexion() {
        try {
            con.close();
            System.out.println("Conexión cerrada");
        } catch (SQLException e) {
            System.out.println("Error al cerrar conexión");
        }
    }
    
    public void busquedaPersona(String bsq, DefaultTableModel modelo) {
        abrirConexion();
        try {
            st = con.createStatement();
            rs = st.executeQuery("select nombre,apellido from persona where nombre like '"+bsq+"%'");
            while (rs.next()) {
                modelo.addRow(new Object[]{rs.getString("nombre"),rs.getString("apellido")});
            }
            cerrarConexion();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

Ahora en el JFrame especificamente el ActionPerformed del boton quedaria de la siguiente manera:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
      borrarTabla();
      con.busquedaPersona(jTextField1.getText(), modelo);
}

jueves, 3 de julio de 2014

Copiar y Pegar en Java

Hola ami @ s Esta Vez despues de Estar Mucho Tiempo Alejado del Blog he vuelto estafa this Programa Donde sí Hace BSG del portapapeles párr Poder Obtener Datos en Este Caso solitario obtendremos Texto Pero Florerias funcionar párr copiar y pegar imagenes from portapapeles.


Imagenes:






Codigo:


IMPORTAMOS this in our Clase director:
java.io.IOException importación;
javax.swing.JOptionPane importación;

Declaramos ESTO Dentro de Nuestra Clase:
Portapapeles p = new portapapeles ();
Texto String;

Eventos de Nuestros Botones:


Boton pegar:

try {
            p.obtenerDatosPortapapeles (jTextArea1);
            JOptionPane.showMessageDialog (null,
                        "Se ha Retrieved Datos del portapapeles", "Pegado", JOptionPane.INFORMATION_MESSAGE);
        } Catch (IOException ex) {
            JOptionPane.showMessageDialog (null,
                        "Ha ocurrido sin error al intentar \ nObtener los Datos del portapapeles", "Error de Datos", JOptionPane.ERROR_MESSAGE);
        }


Boton copiar:

texto = jTextArea1.getText ();
        if (! texto.isEmpty ()) {
                p.copiarAlPortapapeles (Texto, jTextArea1);
                JOptionPane.showMessageDialog (null,
                        "Se ha copiado al portapapeles", "Copiado", JOptionPane.INFORMATION_MESSAGE);
            } Else {
                JOptionPane.showMessageDialog (null,
                        "Ha ocurrido el error de la ONU en la conversión \ nO el área de texto this vacia", "Error de Datos", JOptionPane.ERROR_MESSAGE);
            }


Clase portapapeles:

importar java.awt.Toolkit;
importación java.awt.datatransfer.Clipboard;
importación java.awt.datatransfer.DataFlavor;
java.awt.datatransfer.StringSelection importación;
importación java.awt.datatransfer.Transferable;
java.awt.datatransfer.UnsupportedFlavorException importación;
java.io.IOException importación;
javax.swing.JTextArea importación;

/ **
 *
 * @ Author alexanderbeer
 * /
public class portapapeles {

    portapapeles Portapapeles privados;
    Datos mobiliarios privados;

    copiarAlPortapapeles public void (String text, JTextArea tex) {
        portapapeles = Toolkit.getDefaultToolkit () getSystemClipboard ().;
        Texto StringSelection = new StringSelection ("" + texto);
        portapapeles.setContents (Texto, Texto);
        tex.setText ("");
    }

    obtenerDatosPortapapeles public void (texto JTextArea) throws IOException {
        portapapeles = Toolkit.getDefaultToolkit () getSystemClipboard ().;
        Datos = portapapeles.getContents (null);
        if (datos.isDataFlavorSupported (DataFlavor.stringFlavor)) {
            try {
                text.setText ("" + datos.getTransferData (DataFlavor.stringFlavor));
            } Catch (UnsupportedFlavorException e) {
                / / Bloque catch generado automáticamente TODO
                e.printStackTrace ();
            } Catch (IOException e) {
                / / Bloque catch generado automáticamente TODO
                e.printStackTrace ();
            }
        }
    }
}

PUEDES descargar el project from:
  

martes, 11 de febrero de 2014

Pasar texto de un JTextField a una JList

Hola amig@s ahora les mostrare como pasar el texto de un JTextField a una JList con tan solo unas cuantas lineas y sin complicaciones.

Captura:


miércoles, 6 de noviembre de 2013

SplashSreen en Java con Barra de Carga Utilizando Hilos (Threads)

Hola amig@s esta vez les les mostrare como hacer que sus aplicaciones parezcan un poco mas profesionales añadiendoles un SplashScreen para ello vamos a utilizar hilos para hacer que se complete una barra de progreso y utilizaremos una imagen .png con transparencia para utilizarla como un logo (No es necesario que la imagen sea con transparencia ni tiene que ser únicamente .png, todo queda al gusto de cada quien).

Capturas:





Descarga el código desde aquí.

lunes, 2 de septiembre de 2013

Mover Imagen Utilizando Hilos (Threads) en Java

Hola amig@s en esta ocasión les mostrare como mover 2 imagenes una con las teclas direccionales del teclado y la otra arrastrarla con el ratón, además de hacer un contador que nos muestre cuantos minutos y segundos la aplicaron ha estado activa, también reproducir un archivo MID todo esto con Hilos (Threads) para ello utilizaremos un IDE como entorno de programacion en mi caso utilizare netbeans.

Imagenes:




dentro de nuestro proyecto crearemos un JFrame form y en modo diseñador utilizaremos 4 JLabels, 1 JPanel, 1 JTextField y JButton.

los re-nombramos para poderlos identificar mas facilmente, yo los llame así:


JLabel jLabel2;//esta sera la etiqueta del JTextField
JPanel jPanel1;
JButton jbmover;//mientras no se presione no se podrán mover las imágenes
JLabel jlbola;//este JLabel  sera la imagen que moveremos con el ratón
JLabel jlimagen1;//este JLabel  sera la imagen que moveremos con el teclado
JLabel jlimagen2;//este JLabel  sera la imagen de fondo
JTextField jttiempo;//aqui mostraremos el tiempo transcurrido

ahora cambiamos la vista de diseñador a código y dentro de la clase colocamos lo siguiente:

 Sonido miHilo;
    Thread miThread;
    boolean band;
    HiloTiempo otrohilo=new HiloTiempo();

clase interna

private class HiloTiempo extends Thread {

        @Override
        public void run() {
            int contador = 0,min=0;
            while (true) {              
                    jttiempo.setText("0"+ min+":"+ contador);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Animacion.class.getName()).log(Level.SEVERE, null, ex);
                }
                contador++;
                if(contador==60){
                    contador=0;
                    min++;
                }
            }
        }
    }


dentro de nuestro constructor colocamos esto:

    miHilo=new Sonido();
    miThread = new Thread(miHilo);
    miThread.start(); 
    otrohilo.start();

al botón jbmover le colocamos 2 eventos:

1- KeyPressed.
2- ActionPerformed.

debería quedar algo así:

 private void jbmoverKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jbmoverKeyPressed
        
        if(band==true){
            moverImagen(evt);
        }
    }//GEN-LAST:event_jbmoverKeyPressed

    private void jbmoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbmoverActionPerformed
         band=true;
    }//GEN-LAST:event_jbmoverActionPerformed

al JLabel jlbola le colocaremos el evento: MouseDragged.

debería quedar algo así:

private void jlbolaMouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jlbolaMouseDragged
        if(band==true){
            moverImagen2(evt);
        }
    }//GEN-LAST:event_jlbolaMouseDragged

también declararemos el método para mover la imagen con el ratón:

public void moverImagen2(java.awt.event.MouseEvent evento) {
         jlbola.setLocation(jlbola.getX() + evento.getX() - jlbola.getWidth()/2 , jlbola.getY() + evento.getY() - jlbola.getHeight()/2);          

}

estos son los los métodos para mover la imagen con el teclado:

 private void moverImagen(java.awt.event.KeyEvent evt) {
        switch (evt.getKeyCode()) {
            case KeyEvent.VK_UP:
                moverArriba();
                break;
            case KeyEvent.VK_DOWN:
                moverAbajo();
                break;
            case KeyEvent.VK_LEFT:
                moverIzq();
                break;
            case KeyEvent.VK_RIGHT:
                moverDer();
                break;
            default:
                System.out.println("No valida");
        }
    }

    private void moverArriba() {
        jlimagen1.setLocation(jlimagen1.getX(), jlimagen1.getY() - 10);
    }

    private void moverAbajo() {
        jlimagen1.setLocation(jlimagen1.getX(), jlimagen1.getY() + 10);
    }

    private void moverIzq() {
        jlimagen1.setLocation(jlimagen1.getX() - 10, jlimagen1.getY());
    }

    private void moverDer() {
        jlimagen1.setLocation(jlimagen1.getX() + 10, jlimagen1.getY());
    }

ahora crearemos otra clase para el sonido

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.midi.InvalidMidiDataException;
import org.jfugue.Player;

public class Sonido implements Runnable {

    public void run() {
        Player player = new Player();
        File midi=new File("lilium_intro.mid");
         while (true) {
            try {
                    player.playMidiDirectly(midi);
            } catch (IOException ex) {
                Logger.getLogger(Sonido.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InvalidMidiDataException ex) {
                Logger.getLogger(Sonido.class.getName()).log(Level.SEVERE, null, ex);
            }
         }
    }
}

descarga el proyecto desde aquí.

descarga la librería jfugue desde aquí o visita su pagina oficial.

viernes, 19 de julio de 2013

Dibujar un cuadrado, un triángulo y un circulo en applet

Hola amig@s en esta entrega les mostrare como dibujar un cuadrado, un triángulo y un circulo en applet cada uno se dibujara al presionar el botón correspondiente a dicha figura.


Capturas:




Código:

import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 *
 * @author MARIO
 */
public class Figuras extends Applet implements ActionListener {

    Button bt1, bt2, bt3;
    int indice;
    final Color[] colores = {Color.red, Color.blue, Color.orange};

    public void init() {
        setBackground(Color.yellow);
        bt1 = new Button("Cuadrado");
        bt2 = new Button("Triangulo");
        bt3 = new Button("Circulo");
        bt1.setBackground(Color.red);
        bt1.setForeground(Color.green);
        bt1.addActionListener(this);
        bt2.setBackground(Color.blue);
        bt2.setForeground(Color.white);
        bt2.addActionListener(this);
        bt3.setBackground(Color.orange);
        bt3.setForeground(Color.MAGENTA);
        bt3.addActionListener(this);
        add(bt1);
        add(bt2);
        add(bt3);
    }

    public void paint(Graphics g) {
        g.setColor(colores[indice]);
        switch (indice) {
            case 0:
                g.fillRect(40, 40, 40, 40);
                break;
            case 1:
                int [] x = new int [4];
  x [0] = 5; x [1] = 70; x [2] = 70; x [3] = 5;
  int [] y = new int [4];
  y [0] = 70; y [1] = 5; y [2] = 70; y [3] = 70;
  g.drawPolygon (x, y, 4);
                break;
            case 2:
                g.fillOval(120, 96, 40, 40);
                break;
        }
    }

    public void actionPerformed(ActionEvent e) {
        Object boton = e.getSource();
        if (boton.equals(bt1)) {
            indice = 0;
        } else if (boton.equals(bt2)) {
            indice = 1;
        } else {
            indice = 2;
        }
        repaint();
    }
}


Puedes descargar el código desde aquí.

jueves, 18 de julio de 2013

Dibujar Cara en Applets Java

Hola amig@s en esta nueva entrega les mostrare como crear un applet que dibuje una carita y al presionar un botón cambiar el color de todo lo dibujado

Captura:



Código:

import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @(#)Cara.java
 *
 * Cara Applet application
 *
 * @author Alexander
 * @version 1.00 2013/7/18
 */
public class Cara extends Applet implements ActionListener {

    Button btn = new Button("Cambiar Color");
    int indice = 1;

    public void init() {
        add(btn);
        btn.addActionListener(this);
    }

    public void paint(Graphics g) {
        if (indice == 1) {
            btn.setBackground(Color.black);
            btn.setForeground(Color.lightGray);
            setBackground(Color.red);
            g.fillOval(150, 150, 120, 120);
            g.setColor(Color.green);
            g.fillOval(170, 170, 20, 20);
            g.fillOval(220, 170, 20, 20);
            g.drawLine(200, 175, 200, 220);
            g.drawArc(180, 190, 50, 50, 180, 180);
        } else {
            btn.setBackground(Color.white);
            btn.setForeground(Color.blue);
            setBackground(Color.blue);
            g.setColor(Color.pink);
            g.fillOval(150, 150, 120, 120);
            g.setColor(Color.yellow);
            g.fillOval(170, 170, 20, 20);
            g.fillOval(220, 170, 20, 20);
            g.drawLine(200, 175, 200, 220);
            g.drawArc(180, 190, 50, 50, 180, 180);
        }
    }

    public void actionPerformed(ActionEvent e) {
        Object boton = e.getSource();
        if (boton.equals(btn)) {
            if (indice != 2) {
                indice = 2;
            } else {
                indice = 1;
            }
        }
        repaint();
    }
}


Descarga el código desde aquí.

sábado, 13 de julio de 2013

Mini Paint en Java

Mini Paint en Java

Hola amigos hoy les enseñare como programar un mini Paint basico en java utilizando Netbeans 7.2.1 hasta el momento puede hacer lineas circulos, elipses, cuadros, rectangulos tambien cuenta con una opcion de trazo libre

Pasos:

Creamos nuestro proyecto



Ahora extendemos nuestra clase Paint con JFrame
y declaramos las siguientes variables


Creamos el  constructor de nuestra clase e inicializamos nuestras variables



hasta ahora solo hemos inicializado nuestra variables ahora crearemos una nueva clase llamada Lienzo y para que utilizaremos esta clase pues dicha clase sera la encargada de mostrar lo que estemos dibujando a su vez sera quien escuchara las acciones de nuestro mouse para ello extenderemos nuestra clase Lienzo con la clase Canvas e implementaremos MouseListener, MouseMotionListener.


Ahora crearemos nuestro constructor el cual recibirá como parámetro el objeto Paint

E implementamos los siguientes métodos los cuales se encargan de manejar las distintas acciones del mouse y los ultimos 3 métodos son paint() seria nuestra funcion que dibujaria los distintos trazos en nuestro lienzo, update() actualizaria nuestros trazos sin borrar los anteriores y por ultimo nuevoColor() tomaria el nuevo color a utilizar




Ahora crearemos 4 nuevas clases las cuales estaran encargadas de manejar las acciones de algunos componentes como los radiobuttons, el boton limpiar y los slider estos ultimos se utilizaran en las opciones de circulo-elipse o cuadro-rectagulo dependiendo de los valores que les demos asi seran las formas a mostrar

Clase ManejadorBotonLimpiar


Clase ManejadorRadioButton


Clase SelectorAlto


Clase SelectorAncho



Si logran apreciar las clases de SelectorAlto y SelectorAncho son iguales la unica diferencia es la variable ancho y alto respectivamente nos vamos a nuestra clase Lienzo y añadimos las acciones correspondientes dentro del constructor de esta manera.



Ahora lo que falta es terminar de darle las respectivas acciones a los elementos de la clase Paint y dentro de nuestro constructor

Acciones a los radioButtons solo añadimos:
rbColores[i].addActionListener(new ManejadorRadioButton(this));  de esta manera:


Accion del boton dibujar 


Accion del boton cambiar color al presionar dicho boton se mostrara un JColorShooser (un seleccionador de color)


Accion del comboBox


Accion del boton Salir


al final de nuestro constructor colocamos lo siguiente

La primera linea hace que nuestra ventana se muestre de forma expandida.
Segunda es para establecer la decoracion.
Tercera linea definimos que estilo queremos para nuestra venana.
Cuarta linea definimos la accion del boton cerrar de nuestra ventana.
Quinta linea establecemos que no se pueda cambiar el tamaño de nuestra ventana.



Puedes descargar todo el proyecto desde aqui.