blog de roger1345

Aplicar Efecto Sepia

Aplicar Efecto Sepia

Hace ya unos dias que he estado jugando con los filtros y efectos sobre imagenes desde java, en la mayoria de los casos manipulando los valores RGB de cada pixel, espero les sea de interes, pueden ver mas de 15 filtros que he publicado en My Java Zone

Imagenes

Codigo

Clase Principal

package clases;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

Obtener el ranking de una pagina web

Obtener el ranking de una pagina web

Navegando en internet, casualmente encontre un link donde se mostraba como mostrar el Rank o posicion de una pagina web, gracias a un servicio de ALEXA la cual mantiene un ranking de las paginas mas populares entre otras cosas.

Me decidi a mostrar dicha informacion desde Java y pues hoy les traigo el resultado de esa implementacion. El servicio devuelve un XML y para leer dicho XML uso JDOM.

Clase Principal

package clases;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;

Diseñador Online Boton

Diseñador Online Boton

Aunque es un ejemplo sencillo, conozco personas en las que saber como quedara un componente se vuelve bastante frustrante al tener que escribir el codigo y tener que ejecutarlo para saber como se vera, estoy obvio al no usar el editor de Netbeans o algun plugin para los demas editores, es un ejemplo sencillo de como podemos crear nuestros propios editores o diseñadores de componentes.

Codigo

Clase Principal

package clases;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;

@SuppressWarnings("serial")
public class Principal extends JApplet{
 

Imagen a Texto

Imagen a Texto

Todos hemos visto alguna vez el ART ASCII, en la cual pasan una imagen a su representacion en texto. Hoy les traigo una aplicacion de este tipo.

Hay varias formas de lograr el mismo objetivo, esta es solo una forma, no es la mas eficiente, no es la mas bonita, ni comoda, es solo una forma mas.

Imagenes

Codigo

Clase Principal

package clases;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import javax.swing.*;

public class Principal extends JFrame{
       
        PanelMovimiento pm;
        JScrollPane scp;
       
        public Principal(){
               
                pm=new PanelMovimiento();
                pm.setPreferredSize(new Dimension(1600,600));
                scp=new JScrollPane(pm);
                scp.setAutoscrolls(false);
                scp.setWheelScrollingEnabled(false);

Un poco de seguridad, SQL Injection

Un poco de seguridad, SQL Injection

Gracias a los comentarios de los compañeros de Java Mexico, vimos que como mostre anteriormente no es la forma mas segura, por no decir la menos indicada, en realizar conexiones a una base de datos y mucho menos en un ambiente web que como dice ezamudio es de naturaleza multiusuario y por tanto la concurrencia es algo vital.

Hoy les traigo un pequeño ejemplo de como podemos usando injeccion SQL obtener acceso a los datos de un servidor, borrar datos, modificar, etc. En este caso solo mostraremos como loguearnos sin siquiera tener una contraseña.

Imagenes

Codigo

Clase Principal

package clases;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;

Consultado registros de una BD usando JSP y Servlets

Consultado registros de una BD usando JSP y Servlets

Continuando con lo visto en la entrada anterior, hoy veremos como podemos mostrar los resultados devueltos por la base de datos en nuestro JSP.

Para esto el usuario ingresara el nombre de usuario a buscar, y aparecera toda la informacion en la BD de ese usuario.

Codigo

Clase BeanUsuario

package controlador;

public class BeanUsuario {
 
 private String nombre;
 private String apellido;
 private String edad;
 private String correo;
 private String usuario;
 private String clave;
 public String getNombre() {
  return nombre;
 }
 public void setNombre(String nombre) {
  this.nombre = nombre;
 }
 public String getApellido() {
  return apellido;
 }
 public void setApellido(String apellido) {
  this.apellido = apellido;
 }
 public String getEdad() {
  return edad;
 }

Registrando Datos en una BD usando JSP y Servlets

Registrando Datos en una BD usando JSP y Servlets

Hace unos dias comenzamos con el desarrollo de aplicaciones JEE, vimos como usar Servlets, JSP's, gestion de base de datos, entre otros conceptos.

Hoy quise traerles una pequeña y sencilla aplicacion que muestra los principales aspectos a tener en cuenta en el desarrollo de aplicaciones Web.

A continuacion veran una imagen del proyecto en Eclipse IDE, mostrando la estructura de archivos, implementando el patron de diseño MVC, modelo vista controlador.

La aplicacion muestra dos formas de registrar un usuario, a través del método POST y a través del método GET.

Codigo

Clase BeanUsuario

package controlador;

public class BeanUsuario {
 
 private String nombre;
 private String apellido;
 private String edad;
 private String correo;
 private String usuario;
 private String clave;
 public String getNombre() {
  return nombre;
 }
 public void setNombre(String nombre) {
  this.nombre = nombre;
 }

JZLoader

JZLoader

Me di cuenta que JME no ofrece un componente grafico para mostrar el progreso de un proceso o accion. Esto me motivo a crear uno propio. Lo desarrolle usando la clase Canvas y dibujando la barra de progreso en ella, junto con un mensaje.

Clase Principal

package clases;

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class Principal extends MIDlet {

Display p;
JZLoader loader;

public Principal() {
p=Display.getDisplay(this);
loader=new JZLoader("Java Zone ME",30);
Thread t=new Thread(loader);
t.start();
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}

protected void pauseApp() {
}

protected void startApp() throws MIDletStateChangeException {
p.setCurrent(loader);
}
}

Agenda telefónica, Proyecto Móvil

Agenda telefónica, Proyecto Móvil

En Java Zone, iniciamos nuestro primer proyecto movil, una agenda telefonica, por esto en el dia de hoy les traigo lo que hasta el momento hemos logrado. Escuchamos cualquier recomendacion, funcion adicional o lo que quieran recomendar.

Codigo

Clase Principal

package clases;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class Principal extends MIDlet {

        Display pantalla;
        ListaContactos lc;

        public Principal() {
                pantalla = Display.getDisplay(this);
                lc=new ListaContactos(this);
        }

        public void startApp() {
                pantalla.setCurrent(lc);
        }

        public void pauseApp() {
        }

        public void destroyApp(boolean x) {
        }
}

Clase ListaContactos

 

Almacenando Varios Datos en un Solo Registro

Almacenando Varios Datos en un solo registro

RMS o Record Management System nos permite crear varios RecordStore, nosotros los llamamos zonas, cada zona puede almacenar varios registros, pero cada registro solo puede contener maximo 32 bytes. Si quisieramos guardar varios datos, como identificacion, nombre, apellido, de la forma tradicional lo hariamos en un registro cada uno, uno para el id, otro para el nombre, y asi sucesivamente.

Hoy les mostrare como podemos almacenar varios datos en un solo registro y ademas pueden ser datos de diferente tipo.

Imagenes

Codigo

Clase Principal

package clases;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class Principal extends MIDlet {

 Display pantalla;
 Forma f;

 public Principal() {
  pantalla = Display.getDisplay(this);
  f = new Forma(this);
 }

 public void startApp() {
  pantalla.setCurrent(f);
 }

 public void pauseApp() {
 }

Distribuir contenido