Atom Blog

Algoritmo de busqueda Lineal en Java Netbeans 7.1


El algoritmo de busqueda lineal busca por cada elemento de un arreglo en forma secuencial. El algoritmo evalua cada elemento del arreglo y si no hay coincidencias, cuando llega al final informa que no hay coincidencias.
Si hay coincidencias con los elementos del arreglo, el algoritmo devuelve el indice de ese elemento.

Creacion y Ejecucion de Subprocesos en Java Netbeans 7.1

La inerfaz Runnable es el medio preferido para crear aplicaciones en Java con subprocesamiento multiple. 
Un objeto Runnable representa una tarea, la misma que puede ejecutarse concurrentemente con otras tareas.
La interfaz Runnable declara un solo metodo, run(), el cual contiene el codigo que define la tarea que debe realizar un objeto Runnable. Cuando se crea e inicia un subproceso que ejecuta un objeto Runnable, el subproceso llama al metodo run del objeto Runnable, el cual se ejecuta en el nuevo subproceso.

Como hacer una circunferencia con Puntos en OpenGL en Java Netbeans 7.1

En este post haremos alugunas circunferencias hechas con puntos, utilizando la clase Math en Java en Netbeans 7.1.

Antes que nada es importante saber que para poder utilizar opengl en netbeans se debe tener instalado el plugin que permite hacer esto.
Para saber como utilizar opengl en netbeans seguir el siguiente enlace:
Como Agregar Plugin de OpenGL a Netbeans.

Como iluminar una esfera en OpenGL en Java Netbeans


En este ejemplo mostraremos como iluminar una esfera en OpenGL en Java utilizando la IDE Netbeans 7.1.

Para crear la esfera se hace uso de la libreria GLUT, la cual permite dibujar diversas primitivas geometricas.

Antes que nada es importante saber que para poder utilizar opengl en netbeans se debe tener instalado el plugin que permite hacer esto.
Para saber como utilizar opengl en netbeans seguir el siguiente enlace:
Como Agregar Plugin de OpenGL a Netbeans.

Como Dibujar Figuras con OpenGL en Java Netbeans 7.1


En este nuevo post mostraremos como dibujar diferentes figuras en OpenGL en Java utilizando la IDE Netbeans 7.1.

Antes que nada es importante saber que para poder utilizar opengl en netbeans se debe tener instalado el plugin que permite hacer esto.
Para poder utilizar opengl en netbeans seguir el siguiente enlace:
Como Agregar Plugin de OpenGL a Netbeans.

Como dibujar Circunferencias en OpenGL en Java Netbeans 7.1


En esta nueva entrada veremos como dibujar una circunferencia y una semicircunferencia a traves de opengl en Java utilizando la IDE Netbeans 7.1.

Para poder dibujar una circunferencia hacemos uso de la funcion gl.GL_POLYGON.

Antes que nada es importante saber que para poder utilizar opengl en netbeans se debe tener instalado el plugin que permite hacer esto.

Para poder utilizar opengl en netbeans seguir el siguiente enlace:
Como Agregar Plugin de OpenGL a Netbeans.

Como dibujar triangulos en OpenGL en Java Netbeans 7.1


En este nuevo post veremos como utilizar la funcion GL_TRIANGLES en opengl en Java utilizando netbeans 7.1 para dibujar triangulos de diferentes tamanos y colores.

Antes que nada es importante saber que para poder utilizar opengl en netbeans se debe tener instalado el plugin que permite hacer esto.

Para poder utilizar opengl en netbeans seguir el siguiente enlace:
Como Agregar Plugin de OpenGL a Netbeans.

Como crear un Cilindro en OpenGL en Java Netbeans 7.1


En este post veremos como dibujar un cilindro con mallas en OpenGL en Java utilizando la IDE netbeans 7.1.

Para poder utilizar esta aplicacion es necesario tener instalado el plugin de OpenGL para netbeans, para hacerlo seguir el siguiente enlace:

Como Crear una Esfera en OpenGL en Java Netbeans 7.1


En este nuevo post veremos como dibujar figuras en 3D en java utilizando OpenGL en Netbeans 7.1.

Para poder utilizar esta aplicacion es necesario tener instalado el plugin de OpenGL para Netbeans; para hacerlo seguir el siguiente enlace:

Como Crear un Formulario con JavaServer Faces en Netbeans 7.1


En este nuevo post hemos creado un formulario con javaserver faces utilizando netbeans 7.1.
La aplicacion JSF (formulario) nos permite:
-Ingresar datos: mediante la etiqueta inputText.
-Elegir una de dos opciones: mediante la etiqueta Input;
-Elegir de una pestana desplegable: mediante las etiquetas Select y Option.
-Seleccionar entre algunos checkbox: mediante la etiqueta Input;
-Escribir comentarios: mediante la etiqueta TextArea.
-Escribir etiquetas: mediante la etiqueta label.

Como Usar un TextArea en JavaServer Faces en Netbeans 7.1


En este post hemos creado una aplicacion sencilla en javaserver faces utilizando la IDE netbeans 7.1.
Nuestra aplicacion permite ingresar nombre, apellido. Ademas permite ingresar un breve comentario o descripcion personal al formulario con TextArea.

La aplicacion consta de dos paginas descritas a continuacion:
index.xhtml: Esta pagina nos pedira que ingresemos nombre, apellido y edad. Ademas de esto se ha colocado una area de texto para escribir un breve comentario.
saludo.xhtml: Esta pagina nos da la bienvenida mostrando nuestro nombre de usuario.

Como Usar RadioButton en JavaServer Faces en Netbeans 7.1


Hemos creado una aplicacion sencilla en javaserver faces utilizando netbeans 7.1.
Nuestra aplicacion hace utilidad de las entradas por radiobutton, dandonos la opcion de elegir si el usuario a registrarse es hombre o mujer.

La aplicacion se ha dividido en dos paginas presentadas a continuacion:
index.xhtml: Esta pagina nos permite ingresar nombre, apellido y edad. Ademas nos muestra dos radiobutton para elegir una de las dos opciones disponiles. Tambien se cuenta con botones para aceptar y para salir.
saludo.xhtml: Esta pagina nos muestra un saludo y nos da de salida el nombre y apellido de usuario.

Como usar CheckBox en JavaServer Faces Netbeans 7.1


En este nuevo post creamos una aplicacion sencilla en javaserver faces usando cuadros de marcacion (checkbox), utilizando la IDE netbeans 7.1.

La aplicacion consta de dos paginas .xhml presentadas a continuacion:

Uso de elementos Select y Option en JavaServer Faces (JSF)


En este post crearemos una aplicacion sencilla en JavaServer Faces (JSF), la cual tendra entradas de texto mediante el uso de inputText. Ademas tendra una lista desplegable para elegir una de varias opciones  haciendo uso de Select y Option.

Nuestra aplicacion consta de dos paginas descritas a continuacion:

Como hacer una aplicacion JavaServer Faces (JSF) en Netbeans


El objetivo de este post es explicar paso a paso el desarrollo de una aplicacion haciendo uso de JavaServer Faces (JSF).

La aplicacion desarrollada a continuacion consta de dos paginas: la primera para ingresar nombre de usuario y contrasena y la segunda para mostrar un mensaje de bienvenida al usuario.

Ejemplo Sencillo de JavaServer Faces en Netbeans 7.1


En este nuevo post mostraremos como hacer una sencilla aplicacion en javaServer faces utilizando componentes como: TextField, PasswordField y boton Submit de HTML.

El proposito de este ejemplo es mostrar las piezas que son necesarias para construir una aplicacion JSF.

La aplicacion JSF nos pedira ingresar un usuario y contrasena, al presionar en el boton Aceptar, la aplicacion nos enviara a un pantalla de bienvenida y si presionamos en el boton Cancelar, la aplicacion nos mostrara que hemos cerrado sesion.

JavaServer Faces


El principal objetivo de la tecnologia JavaServer Faces es desarrollar aplicaciones web de forma parecida a las aplicaciones locales de Java Swing, AWT, SWT o cualquier API.

Las aplicaciones web se codificaban mediante paginas JSP (JavaServer Pages), que recibian peticiones a traves de formularios, construyendo respuestas como paginas HTML.

Reglas Generales para el uso de Componentes Swing en Java


En este nuevo post se presentaran las propiedades que tienen en comun los componentes de swing en Java.
Ademas se explica las caracteristicas que ofrece la clase JComponent a la mayoria de los componentes swing.

La mayoria de los componentes swing estan implementados como una subclase de la clase JComponent. Los componentes swing heredan las siguientes funcionalidades:

Crear Botones en Applet con la composicion FlowLayout en Java Netbeans


En este ejemplo veremos como agregar botones a un applet haciendo uso de la composicion flowlayout en java utilizando la IDE netbeans 7.1.

Este tipo de composicion es el mas simple de usar, es utilizado por todos los paneles por defecto. Los componentes que se anaden a un panel con FlowLayout se colocan en forma de lista de manera horizontal de izquierda a derecha.
El programa presentado a continuacion esta compuesto por 4 botones anadidos al panel del Applet mediante la composicion flowlayour. Ademas se ha cambiado los colores a los mismos.

Botones en Applet con la composicion GridLayout en Java Netbeans


En este post veremos como anadir botones a un applet utilizando la composicion GridLayout en Java haciendo uso de la IDE netbeans 7.1.

La composicion gridlayout es muy util a la hora de colocar componentes, ya que proporciona una herramienta para crear filas y columnas, situando los componentes en las celdas previamente creadas.

Botones en Applet con la composicion GridBagLayout en Java Netbeans


En este nuevo ejemplo veremos como colocar botones a un Applet, mediante la composicion GridBagLayout en Java en Netbeans 7.1.

Este tipo de composicion es parecido al GridLayout, la unica diferencia es que se puede establecer cualquier tamano a los botones.

Como crear una lista en Applets en Java Netbeans


Este nuevo post contiene un ejemplo realizado en Java utilizando el entorno netbeans 7.1.

El ejemplo siguiente construye un applet en el que contiene 3 paneles diferentes, uno para colocar la lista, otro para colocar algunos botones y el ultimo para colocar areas de texto.

La lista desplegable tiene dos opciones para mostrar: una muestra el panel de los botones y la otra muestra el panel de las areas de texto.

Como generar eventos de botones en Applets en Java Netbeans


En este nuevo post explicaremos como generar eventos al pulsar algun boton del applet.

El ejemplo que se presentara a continuacion cuenta con tres botones de diferentes colores distribuidos en distintas partes del applet; los cuales son creados y redimensionados en el metodo init().

Como crear botones en un Applet con BorderLayout en Java Netbeans


BorderLayout ofrece un esquema complejo para la colocacion de componentes en un panel.

Este tipo de composicion utiliza 5 lugares para colocar los componentes, los cuales son: Norte, Sur, Este, Oeste y Centro.

Como crear un menu con el boton derecho en Java Netbeans


Los menus contextuales proporcionan opciones especificas al componente para el cual se genero el evento de desencadenamiento del menu contextual, tales eventos se crean con la clase JPopupMenu.
El evento de desencadenamiento ocurre cuando el usuario oprime y suelta el boton derecho del raton.

Como cargar y mostrar Imagenes en un Applet en Java netbeans 7.1


Las herramientas que ofrece java incluyen graficos, imagenes, animaciones, sonidos y videos.
Para nuestro ejemplo nos centraremos en las imagenes.

El Appet desarrollado a continuacion muestra como cargar un objeto ImageIcon. Esta clase es utilizada para cargar y mostrar imagenes en pantalla.

Como dibujar Figuras Geometricas en OpenGl Java Netbeans 7.1


En este post veremos como dibujar diferentes figuras geometricas como: poligonos, lineas, triangulos, cuadrados, etc; mediante la utilizacion de la API OpenGL en Java en Netbeans 7.1.

La API OpenGL permite escribir aplicaciones que produzcan graficos 2D y 3D.

Como crear un Nuevo Proyecto OpenGL en Netbeans 7.1


Una vez instalados los plugins necesarios se pueden crear proyectos Java JOGL Application para poder utilizar las herramientas de OpenGL.

Para saber con instalar los plugins OpenGl para Netbeans 7.1 seguir el enlace:

Como Instalar plugin de OpenGL a Netbeans 7.1


Es este nuevo post explicaremos como utilizar OpenGl en Java sobre la IDE Netbeans 7.1.

En primer lugar descargaremos el plugin desde el siguiente enlace:

Como dibujar lineas, rectangulos, arcos con la API Java 2D


La API Java 2D proporciona herramientas avanzadas para graficos en dos dimensiones.
La API incluye caracteristicas para procesar texto e imagenes.

El dibujo con la API Java 2D se logra mediante la utilizacion de una referencia Graphics2D, que es una subclase abstracta de la clase Graphics.

Como cambiar el color a un boton con la clase JColorChooser en Java


En este post mostraremos la utilizacion de el cuadro de dialogo JColorCHooser para poder cambiar el color de un boton en java utiliando netbeans 7.1.

Al presionar el boton 'cambiar color' se abrira un cuadro de dialogo para seleccionar un color, si se presiona en aceptar el boton tomara el color seleccionado, si se presiona en cancelar el boton tomara el color por defecto, cyan.

Como dibujar con el raton mediante la subclase JPanel en Java


En este nuevo post usaremos un objeto JPanel, el cual servira de area para dibujar.

Hablaremos un poco sobre el metodo paintComponet, el cual se llama cuando se muestra un componente ligero de Swing. Al sobrescribir este metodo, puede especificar como dibujar figuras usando las herramientas de graficos de java.

Como Abrir Archivos con JFileChooser


La clase JFileChooser muestra un cuadro de dialogo denominado cuadro de dialogo JFileChooser, el cual permite seleccionar archivos y directorios con facilidad.

A continuacion se presentara un ejemplo para aprender a manejar esta clase.

El ejemplo consta de un JFrame sobre el cual se pegara un boton 'Abrir', al presionar el boton se abrira la ventana del JFileChoser.

Uso de clase interna anonima para el manejo de eventos y JComboBox


Una lista despegable proporciona una lista de elementos de la cual se puede escoger solamente uno.
Las listas despegables se implementan con la clase JComboBox.

Los objetos JComboBox generan eventos ItemEvent.

En el siguiente ejemplo haremos uso de un objeto JComboBox para proporcionar una lista de nombres de imagenes, de las cuales el usuario selecciona una para mostrarla en pantalla.

Serializacion de Objetos


Como ya sabemos Java cuenta con un mecanismo que permite escribir o leer un objeto completo de un archivo, conocido como: serializacion de objetos.

Un objeto serializado es un objeto que se presenta como una secuencia de bytes, la cual incluye datos del objeto, asi como la informacion acerca del tipo de objeto y los tipos de datos almacenados en el mismo.

Como Hacer un Chat con Sockets en Java en Netbeans


En este nuevo post mostraremos como hacer un chat mediante el uso de Sockets en Java en el ambiente de programacion Netbeans. Los Sockets sirven para comunicar procesos de diferentes maquinas de una red.

Haremos un servidor y un cliente utilizando Sockets.

Del lado del Servidor se tiene un bucle infinito que espera conexiones de clientes. Cuando un cliente se conecta el servidor acepta la conexion y genera dos threads: uno para enviar datos y el otro para recibirlos.

Del lado del Cliente se tiene que esperar un Servidor para poder conectarse, cuando se conecta al servidor se generan dos threads, al igual que en el Servidor uno para enviar y otro para recibir los datos.

Los threads que se generan del lado del servidor y del cliente son los mismos.
La clase principal del Servidor es identica a la clase principal del cliente; la unica diferencia esta en el main, el servidor espera conexiones del cliente y el cliente busca servidor para conectarse.

Para nuestro ejemplo utilizaremos localhost para poder correr el programa en nuestra propia maquina.

Es importante tener en cuenta que puerto se va a utilizar para poder abrirlo con anterioridad, en nuestro caso abriremos el puerto 11111.

Se debe conocer que las asignaciones a los puertos comprendidos entre los valores (0 - 1023) estan determinados por la IANA (Internet Assigned Numbers Authority). y no se los puede utilizar de otro manera.

Se puede utilizar los puertos comprendidos entre los valores (1024 - 65535). 

Nuestro programa cuenta con dos paquetes, uno para el servidor y otro para el cliente; los mismo que contiene threads identicos para envio y recepcion de datos.

Empezaremos describiendo las clases del lado del servidor:

Clase PrincipalChat:
Esta clase implementa la interfaz grafica para poder mostrar los mensajes entrantes y un JTextField para poder enviarlos. La interfaz contiene un menu para poder salir del programa.
En el main se puede ver que se espera conexiones de clientes.


Clase ThreadEnvia:
En esta clase establecemos nuestro canal de salida tipo ObjectOutputStream, el cual nos sirve para escribir el mensaje, enviarlo y mostrarlo en pantalla mediante el metodo enviarDatos().
Ademas declaramos la variable conexion tipo Socket, la cual se encarga de establecer el flujo de datos entre  cliente y servidor.

Clase ThreadRecibe:
En esta clase establecemos nuestro canal de entrada tipo ObjectInputStream, el cual se encarga de recibir los mensajes enviados por el cliente o servidor.
Aqui se procesa los mensajes recibidos y luego son mostrados en pantalla.
Es importante aclarar que se debe cerrar el canal de entrada de datos y el Socket de conexion una vez finalizado el flujo de datos.

En el paquete Cliente encontramos:

Clase PrincipalChat:
Esta clase implementa la interfaz grafica para poder mostrar los mensajes entrantes y un JTextField para poder enviarlos. La interfaz contiene un menu para poder salir del programa.
Esta clase busca servidores para poder conectarse.

Las clases descritas en el paquete Cliente: ThreadRecibe y ThreadEnvia son exactamente las mismas que se describieron en el paquete Servidor.

Nuestro proyecto se vera asi:


El resultado final se mostrara de la siguiente manera:

Para descargar el proyecto completo click en la siguiente imagen:

Skydrive

Dropbox







Como Insertar una Imagen a un JLabel desde URL


En este post indicaremos como insertar una imagen  como icono en un JLabel. Ademas se insertara un scroll para que la imagen aparezca independiente del tamaño.

La imagen a insertar sera tipo .jpg; se pueden utilizar imagenes con extensiones .png, jpg, gif.

En codigo descrito a continuacion establece un JFrame, sobre el cual se insertara un JLable, donde finalmente se pegara una imagen obtenida a traves de una URL.
JFrame>>JLabel>>imagen

Nuestro primer paso es declarar la URL:
URL url = new URL("http://www.info-centro-24.com/documents/admin/uploads/classifieds/img-45-                     30867-original.jpg");

Seguido de esto se guardara la URL sobre una variable tipo Imagen.
Image image = ImageIO.read(url);

A continuacion se crea el JLabel donde se pegara la variable "image" tipo Imagen, estableciendola como ImageIcon();
JLabel label = new JLabel(new ImageIcon(image));

Nuestro ultimo paso es crear el Scroll y agregarlo al JLabel.

JScrollPane scroll = new JScrollPane(label);
add(scroll);

No olvidarse que en nuestro main tendremos que establecer el JFrame como visible, establecer un tamano para el mismo, de la siguiente manera:
ImagenURL imagen = new ImagenURL();
imagen.setSize(400, 400);
imagen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
imagen.setVisible(true);
imagen.setLocationRelativeTo(null);

La salida de nuestro programa quedara de la siguiente manera:

El codigo se presenta a continuacion:
Podemos descargarnos el proyecto, click en la siguiente imagen:



Manejo de Ventanas en Java Netbeans

Manejo de Ventanas en Java usando Netbeans 7.1

En este nuevo ejemplo mostraremos a utilizar ventanas en Netbeans 7.1: ventanas para ingresar datos, ventanas para listar datos, enlazamiento de varias ventas, manejo de botones,  JButton.
Ademas se va a utilizar menus para una ventana principal.

La ventana principal es de tipo Formulario JFrame, las otras ventanas seran de tipo Formulario JDialog.

Nuestro problema consiste en lo siguiente:
Se desea disenar un programa que permita ingresar estudiantes a una lista, especificando su numero de cedula, nombre, apellido, edad y 3 notas correspondientes a los tres periodos del ano lectivo, ademas se mostrara el promedio total y el estado (Aprobado, Reprobado).

Solucion:
El problema se ha dividido en 5 clases desarrolladas a continuacion.

Estudiante:
Para la solucion del problema se crea nuestra primera clase llamada Estudiante, la que contendra los atributos que tiene el mismo tal como: cedula, nombre, apellido, edad, etc.
Ademas esta clase contiene los metodos setters y getters para la utilizacion de los atributos.



GestorEstudiante:
Contiene el metodo ingresarEstudiante() que permite anadir un nuevo estudiante a la lista.


ventanaAgregarEstudiante:
Esta clase es una ventana de tipo Formulario JDialog.
Se presenta de la siguiente manera:


Esta clase tambien contiene los metodos: calcularPromedio() tipo float que retorna el prometio a mostrar en la tabla y el metodo establecerEstado() tipo String que retorna el estado (Aprobado o Reprobado) del estudiante.



ventanaListarEstudiantes:
Esta clase contiene una tabla, en la cual se mostraran los estudiantes ingresados.
Es de tipo Formulario JDialog.
Se presenta de la siguiente manera:

En esta clase se encuentra el metodo llenarDatosTabla(), el cual permite escribir sobre la tabla la informacion obtenida del usuario.



ventanaPrincipal:
Es de tipo Formulario JFrame.
Esta clase contiene los menus como archivo y edicion, asi como los submenus como salir, agregar estudiante y listar estudiante. Al presionar algun item de los nombrados se enlazara a la ventana correspondiente.
Se presenta de la siguiente manera:
El codigo es el siguiente:


Para descargar el proyecto completo click en la siguiente imagen:
-Skydrive

-Dropbox






Uso de CheckBox y Button en Java


En este nuevo ejemplo se explicara la utilizacion de los CheckBox y los Button en Java, mediante la utilizacion de Netbeans 7.1.

Para la utilizacion de los Checkbox sera necesario importar el paquete de awt "java.awt.Checkbox".
import java.awt.Checkbox;

Para la utilizacion de los Button es necesario importar el paquete de swing "javax.swing.JButton".
import javax.swing.JButton;

Para nuestro ejemplo utilizaremos 4 CheckBox y dos Button:


Se empezara declarando los CheckBox y los Button de la siguiente manera:
private JButton botonGuardar;
private JButton botonSalir;
private Checkbox checkBox1;
private Checkbox checkBox2;
private Checkbox checkBox3;
private Checkbox checkBox4;

Luego, en el constructor se creara los button y los CheckBox y se les asignara un nombre. Ademas se inicializara en falso los Checkbox.

botonGuardar = new JButton("Guardar");
botonSalir = new JButton("   Salir   ");      
checkBox1 = new Checkbox("checkBox1", false);
checkBox2 = new Checkbox("checkBox2", false);
checkBox3 = new Checkbox("checkBox3", false);
checkBox4 = new Checkbox("checkBox4", false);

Continuaremos adicionando los button y Checkbox al panel:

add(checkBox1);
add(checkBox2);
add(checkBox3);
add(checkBox4);
add(botonGuardar);
add(botonSalir);

Establecemos el tamano del panel y lo ponemos visible:

setSize(170, 220);
setVisible(true); 

Se ha creado un metodo que controla los eventos que se realizan al presionar los botones (Guardar y Salir) y los eventos ocasionados al hacer check en alguno de los 4 Checkbox.

public void manejadorEventos(){
        botonGuardar.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                if(checkBox1.getState()==true){
                    JOptionPane.showMessageDialog(null, "Se hizo check en el checkBox1");
                }
                if(checkBox2.getState()==true){
                    JOptionPane.showMessageDialog(null, "Se hizo check en el checkBox2");
                }
                if(checkBox3.getState()==true){
                    JOptionPane.showMessageDialog(null, "Se hizo check en el checkBox3");
                }
                if(checkBox4.getState()==true){
                    JOptionPane.showMessageDialog(null, "Se hizo check en el checkBox4");
                }
            }
        });
        
        botonSalir.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                System.exit(0);
            }
        });
}


A continuacion se publica el ejemplo:


Resultados:

Al hacer check en el Checkbox1 y despues presionar en el boton "Guardar", el programa realizara la siguiente tarea:

Al hacer check en el Checkbox2 y despues presionar en el boton "Guardar", programa realizara la siguiente tarea:

Y asi sucesivamente.....

Y al presionar en el boton "Salir", se cerrara el programa.


Conexion de Java y Derby Utilizando Netbeans 7.1


La guia presentada a continuacion nos permitira crear una base de datos a traves de Derby utilizando Netbeans 7.1. Una vez creada la base de datos se continuara estableciendo una conexion para poder acceder a la misma.

Para poder conectarse a la base de datos es necesario realizar algunas operaciones de bases de datos.
El ejemplo consta de dos clases: una que nos permite crear la conexion con la base de datos y la otra nos permite acceder a la misma.

Accediendo a Base de Datos con JDBC


Empezaremos estableciendo algunos conceptos importantes.

Base de Datos.- Es una coleccion organizada de datos. Existen muchas estrategias para la organizacion de datos, para facilitar el acceso a la base de datos y su manipulacion.

DBMS.- Es un sistema de gestion de base de datos.
Ofrece mecanismos para almacenar, organizar, recuperar y modificar datos de varios usuarios.

Los programas en java se comunican con bases de datos y manipulan sus datos usando los JDBC API.

Bases de Datos Relacionales:
Sirven para almacenar datos, no tienen en cuenta su estructura fisica.
Almacenan los datos en tablas.
Las tablas se componen de filas y las filas de columnas.
Los programas en Java pueden especificar criterios de ordenacion cuando se solicitan datos en una base de datos.
Aveces es necesario seleccionar solo ciertos datos de la Base de Datos (SQL).

Ejemplo de Base de Datos:

SQL:
Operaciones que se pueden realizar con bases de datos:

SQL KeyWord.- Los ejemplos se referiran a la base de datos de ejemplo de arriba.

SELECT: Recupera datos de una o mas tablas.
FROM: Hace referencia a las tablas involucradas en la consulta, requiere de todos los SELECT.

SELECT * FROM nombreTabla (* Indica que todas las columnas de la tablas son recuperadas).

Ejemplo:
SELECT Id, Nombre FROM Estudiantes


WHERE: Criterio de seleccion que determina las filas a ser recuperadas, borradas o actualizadas.

SELECT columna1, columna2,.... FROM nombreTabla WHERE criterio

Ejemplo:
SELECT Nombre, Apellido, Calificacion
FROM Estudiantes
WHERE Calificacion > '15'

En WHERE se pueden utilizar las operaciones tales como: <, >, <=, >=, =, <> and LIKE(%).

Ejemplo:
SELECT  Nombre, Apellido 
FROM Estudiantes 
WHERE apellido LIKE 'A%' //Hace referencia a los apellidos que empiecen con la letra 'A'.

LIKE '_a%'  >> Criterio de que la segunda letra sea la 'a'.
LIKE '%s' >> Criterio de que la ultima letra sea la 's'.

GROUP BY: Criterio de agrupacion de filas, opcional en consultas SELECT.

ORDER BY: Criterio para ordenar filas, opcional en consultas SELECT. Sirve para agrupar ascendente o descendentemente.

SELECT Columna1, Columna2,..... FROM nombreTabla ORDER BY Columna ASC/DESC

Ejemplo:
SELECT Nombre, Apellido
FROM Estudiantes
ORDER BY Apellido ASC

INNER JOIN: Combina filas de varias tablas. Sirve para fusionar datos de varias tablas.

SELECT Columna1, Columna2,... FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.Columna = Tabla2.Columna.

INSERT: Inserta filas en una tabla especifica.

INSERT INTO nombreTabla (Columna1, Columna2,......) VALUES (Value1, Value2,....)

Ejemplo:
INSERT INTO Estudiantes (Nombre, Apellido)
VALUES ('Emily', 'Cardenas')

UPDATE: Actualiza filas en una tabla especifica.

UPDATE nombreTabla SET Columna1 = Value1, Columna2 = Value2 WHERE Criterio

Ejemplo:
UPDATE Estudiantes
SET Nombre = 'Maria'
WHERE Id = '1'

DELETE: Elimina filas de una tabla especifica.

DELETE FROM nombreTabla WHERE Criterio

Ejemplo:
DELETE FROM Estudiantes WHERE Apellido = 'Loayza' AND Nombre = Carla









Cliente con Sockets en Java

A continuacion se explicara como elaborar un cliente son Sockets.
Para establecer la conexion se necesitaran 4 pasos.

Paso 1
Creamos el objeto Socket para conectarse al servidor.

Socket conexion = new Socket(ipServidor, numPuerto);

ipServidor>> ip del servidor.
numPuerto>> puerto con el que se va a conectar con el servidor.

Si la conexion es exitosa esta instruccion devuelve un objeto Socket.

Paso 2
El cliente utiliza los metodos getInputStream y getOutputStream de la clase Socket para hacer referencia a los objetos OutputStream e InputStream de Socket.

Paso 3
Procesamiento: El cliente y el servidor se comunican a traves de los objetos InputStream y OutputStream.

Paso 4
El cliente cierra la conexion cuando se completa la transmision.



Servidor con Sockets en Java


A continuación se explicara como elebarorar un Servidor a través de Sockets.
Para establecer la conexion se necesitan seguir 5 pasos.

Paso 1
Para empezar debemos crear un objeto ServerSocket:

ServerSocket servidor = new ServerSocket(numPuerto, numClientes);

numPuerto>>especifa el puerto TCP disponible.
numClientes>>especifica el numero maximo de clientes que se pueden conectar.

El numero de puerto es utilizado por los clientes para localizar al servidor.
El constructor establece el puerto en donde el servidor espera las conexiones de los clientes.

Paso 2
Para administrar las conexiones del cliente es necesario un objeto Socket.
El Servidor escucha indefinidamente esperando a que un cliente trate de conectarse.
Para escuchar la conexion de un cliente se debe llamar al metodo:

Socket conexion  = servidor.accept();

Devuelve un objeto Socket al establecer la conexion con el cliente.
El objeto Socket permite al servidor interactuar con el cliente, estas interacciones ocurren por otro puerto, no por el establecido en el paso 1; lo que permite al servidor aceptar otra conexion del cliente con subprocesamiento multiple.

Paso 3
Establecer los objetos OutputStream e InputStream que permite al servidor comunicarse con el cliente.
El servidor envia informacion al cliente mediante un objeto OutputStream y recibe informacion mediante InputStream.

Los objetos flujo pueden utilizarse para enviar o recibir bytes individuales o secuencias de bytes mediante los metodos write de OutputStream y read de InputStream.
Se puede enviar o recibir valores de tipo primitivo u objetos Serializables.

ObjectInputStream input = new ObjectInputStream(conexion.getInputStream);
ObjectOutputStream output = new ObjectOutputStream(conexion.getOutputStream);  

Cualquier cosa que escriba el servidor en el objeto ObjectOutputStream se enviara mediante el objeto OutputStream y estara disponible en el objeto InputStream del cliente y viceversa.

Paso 4
Procesamiento: El servidor y el cliente se comunican mediante los objetos OutputStream e InputStream.

Paso 5
Al completarse la transmision, el servidor cierra la conexion invocando al metodo close en los flujos.

output.close()
input.close();
conexion.close();




Como Crear Archivo Log en Java

Mostraremos un ejemplo simple de como crear un archivo log (tipo de registro o historial) de los sucesos que ocurren en el programa, se guardan con la fecha y hora del evento.

Primero necesitaremos importar el paquete Calendar, que se encargar de darnos la fecha y la hora.

import java.util.Calendar;

public class archivoLog () {
     FileWriter archivo //nuestro archivo log

     public void crearLog(String Operacion) {

        //Pregunta el archivo existe, caso contrario crea uno con el nombre log.txt
        if (new File("log.txt").exists()==false){archivo=new FileWriter(new File("log.txt"),false);}
             archivo = new FileWriter(new File("log.txt"), true);
             Calendar fechaActual = Calendar.getInstance(); //Para poder utilizar el paquete calendar    
             //Empieza a escribir en el archivo
             archivo.write((String.valueOf(fechaActual.get(Calendar.DAY_OF_MONTH))
                  +"/"+String.valueOf(fechaActual.get(Calendar.MONTH)+1)
                  +"/"+String.valueOf(fechaActual.get(Calendar.YEAR))
                  +";"+String.valueOf(fechaActual.get(Calendar.HOUR_OF_DAY))
                  +":"+String.valueOf(fechaActual.get(Calendar.MINUTE))
                  +":"+String.valueOf(fechaActual.get(Calendar.SECOND)))+";"+operacion+"\r\n");
             archivo.close(); //Se cierra el archivo
     }//Fin del metodo crearLog
   
     //Como ejemplo ponemos el caso que se este agregando nombres de personas a un vector
     //y queremos guardar en el Log cada vez que ocurre el evento, seria así:

     public void agregarPersona() {
          //Codigo .....
          this.crearLog("Nueva Persona guardada"); //Guarda en el Log el evento realizado
     }

     public static main() {
          archivoLog archivo = new ArchivoLog(); //Instancia de la clase para utilizar sus metodos.
          archivo.agregarPersona(); //Se llama al método agregarPersona
     }//Fin del main

}//Fin de la clase






La clase File en Java

La clase File en Java utilizando Netbeans 7.1

La clase file es útil para recuperar información acerca de un archivo o directorio que se encuentra en el disco.
Los objetos de la clase File se utilizan con objetos de otras clases de java.io para especificar los archivos o directorios a manipularse.

Crear Objetos File:
La clase File nos proporciona 4 constructores:

     Constructor 1: 
     public File (String nombre)

El cual especifica el nombre del archivo o directorio que se asocia al objeto File. El nombre puede contener información sobre la ruta, así como el nombre del archivo o directorio; la ruta especifica la ubicación del archivo o directorio en el disco, se puede tener una ruta relativa o una ruta absoluta.

     Constructor 2:
     public File (String ruta, String nombre)

El argumento ruta (ruta absoluta o relativa) sirve para ubicar al archivo o directorio especificado por el parámetro nombre.

     Constructor 3:
     public File (File directorio, String nombre)

Usa un objeto File existente llamado directorio (ruta absoluta o relativa) para localizar un archivo o directorio especificado por el parámetro nombre.

     Constructor 4:
     public File (URI uri)

Usa el objeto URI (Identificador Uniforme de Recursos) para localizar el archivo. Es una forma mas general de una URL (Localizador Uniforme de Recursos).

Existen distintos métodos que se pueden utilizar en la clase File, los cuales se enumeran a continuación.
boolean canRead()>> devuelve true si la aplicación actual puede leer un archivo.
boolean canWrite()>> devuelve true si la  aplicación actual puede escribir en un archivo.
boolean exists()>> devuelve true si el archivo o directorio existe.
boolean isFile()>> devuelve true si el nombre especificado en el constructor es un archivo.
boolean isDirectory()>> devuelve true si el nombre especificado en el constructor es un directorio.
boolean isAbsolute()>> devuelve true si los argumentos en el constructor se refieren a una ruta absoluta.
String getAbsolutePath()>> devuelve una cadena con la ruta absoluta del archivo o directorio.
String getName()>> devuelve una cadena con el nombre del archivo o directorio.
String getPath()>> devuelve una cadena con la ruta del archivo o directorio.
String getParent()>> devuelve una cadena con el directorio padre del archivo o directorio.
long lenght()>> devuelve la longitud del archivo en bytes, si es directorio devuelve 0.
long lastModified()>> devuelve la información de la ultima modificación del archivo o directorio.

Una simple demostración del uso de la clase File:

El siguiente programa pide al usuario que escriba el nombre de un archivo o directorio para después mostrar en pantalla información del archivo o directorio introducido. 

import java.io.File;
import java.util.Scanner;

public class demostracionClaseFile () {
     
     public void analizarRuta() {
          File nombre = new File (ruta); //crea objeto File en base al nombre introducido por el usuario
          if (nombre.exists()) { //si el archivo o directorio existe muestra la información
               System.out.println(nombre.getName()+ "existe" );  
               System.out.println(nombre.isFile+ "es un archivo");
               System.out.println(nombre.isDirectory+ "es un directorio");   
          }else System.out.println(nombre+ "ruta no existe"); 
     }

     public static void main(String args[]) {
          Scanner entrada = new Scanner (System.in);
          System.out.println("Escriba el nombre del archivo o directorio");
          analizarRuta(entrada.next.Line());
     } 
}







Como Crear Archivos en Java usando Netbeans 7.1


En este ejemplo se mostrara como crear un archivo para escribir datos almacenados en el programa y como leerlos al iniciar el mismo.

Para ello se hace uso de las clases ObjectInputStream y ObjectOutputStream para poder escribir y leer el archivo creado.

A continuación se mostrara un ejemplo sencillo que como hacer esto.

public class archivoJava() implements Serializable {
     public Persona personas[]; //vector es es de tipo serializable Persona que tiene los atributos
     private ObjectInputStream input; //objeto para leer el archivo
     private ObjectOutputStream output; //objeto para poder escribir en el archivo

     public archivoJava(Persona[] personas) {
          this.personas = personas;
     } //Fin del constructor
  
     //Método que permite guardar un archivo de texto
     public void guardarArchivo() {
          try {
              output = new ObjectOutputStream(new FileOutputStream("archivo.txt"));
              output.writeObject(getPersonas());
              output.close();
          }catch (Exception e) {
              JOptionPane.showMessageDialog(null, "Error al guardar archivo", "Mensaje",
              JOptionPane.WARNING_MESSAGE);                                                                                                 
         }
     } //Fin del método guardarArchivo

     //Método que permite leer un archivo de texto
     public void leerArchivo() {
      try{
            input=new ObjectInputStream(new FileInputStream("archivo.txt"));
            personas=(Persona[])input.readObject(); //personas es una clase serializable
            setnPersona(numPersonas());
            input.close();
      }catch (IOException e) {}
        catch (ClassNotFoundException e) {}
    }  //Fin del método leerArchivo   

} //Fin de la clase