miércoles, 20 de diciembre de 2017

Mini Paint en Java con algoritmos graficos

Hola amig@s en esta ocasión les comparto otra forma de hacer un mini Paint en Java pero no utilizando las funciones para dibujar figuras de Java  Graphics sino usando algoritmos gráficos para ello para ello;  entre dichos algoritmos tenemos:

  1. Hipérbole.
  2. Circulo.
  3. Linea.
  4. Elipse.
  5. Cuadrado/Rectángulo.
Este Paint esta basado en el Mini Paint que les compartí anteriormente. Tambien cuenta con una paleta de colores además de la posibilidad de borrar secciones donde el cursor recorre.


Imagenes:



Descarga el proyecto desde:


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