octubre 02, 2013

Juego del ahorcado en Java

El semestre pasado lleve la materia de graficación, y me pidieron que realizara este juego; en si no tiene una gran interfaz, aparte que solo lo hice en un día, lo comparto con ustedes para que si llegan a hacerlo, no comiencen de cero como yo, y se les haga mas fácil.

El juego esta dividido en tres clases. La clase Palabra es la encargada del manejo de las palabras que pueden ser elejidas para que el jugador trate de adivinar cual es (las palabras son nombres de animes), también esta clase hace las comparaciones de letras para ver si la letra que escriba el usuario se encuentra dentro de la palabra que el programa eligió.

La clase Pintar es la encargada de pintar el "muñeco" con ayuda de los métodos paint y repaint.

Y por ultimo la clase Ahorcado es donde esta toda la interfaz gráfica del juego.

Si tienen alguna duda sobre alguna parte del código comenten en nuestro Facebook para una pronta respuesta. .facebook.com/BuenasIntencions 

Descarga el proyecto AQUI

NOTA: El proyecto fue creado utilizando NetBeans 7.1



julio 10, 2013

Operaciones básicas en java

Últimamente  descuidamos el blog un poco (por las vacaciones de verano), hace algunos días una seguidora del blog nos contacto para resolver algunas dudas, lamentablemente por falta de tiempo resolvimos sus dudas un poco después de tiempo. Pero ella logro terminar su programa y quiere compartirlo con nosotros y ustedes también. 

Es un programa que pide una entrada (un numero entero) y realiza las 4 operaciones basicas. El programa usa JOptionPane para pedir y mostrar los datos, también otra cosa que debo mencionar es que el programa implementa el uso de funciones.

Les dejo el código aquí:




Ahora solo les queda probar el programa en sus computadoras. ¡Hagamos código! Pueden descargarlo de aquí: Operaciones.java

Inicio en java Ejemplo 3

Siguiendo con el tercer ejercicio de Inicio en java, se plantea el siguiente problema:

Hacer un programa en java que solicite al usuario el monto de los dolares a convertir en pesos mexicanos y solicite también la tasa actual de cambio por dolar. El programa visualizara el resultado de conversión de dolares a pesos mexicanos.

CÓDIGO


/**
 * Archivo: Conversion.java
 * @autor BelloCerecero
 * @since 10-jul-2013
 **/

import java.util.Scanner;

public class Conversion
{
  public static void main(String[] args) 
  {
    //Creamos el objeto teclado
    //Para interactuar con el usuario por consola
    Scanner teclado = new Scanner(System.in);

    //Solicitamos el monto a convertir 
    System.out.println("Ingrese el monto: ");

    //Guardamos el monto a convertir
    double dolares = teclado.nextDouble();

    //Solicitamos la tasa actual de cambio
    System.out.println("Ingrese tasa actual de cambio: ");

    //Guardamos la tasa actual de cambio
    double tasa = teclado.nextDouble();

    //Hacemos la conversion
    double conversion = tasa * dolares;

    //Imprimimos
    System.out.println(dolares + " dolares es igual a " + conversion + " pesos");
  }
}

Comenzaremos en la linea 7, aquí estamos importando la clase Scanner para poder interactuar con el usuario por medio de la consola.

En la linea 9 creamos la clase Conversion y en la linea 11 creamos el main.

Ahora en la linea 15 instanciamos Scanner para poder usar sus métodos; En la linea 18 imprimimos en consola "Ingrese el monto" el usuario tendrá que ingresar el monto en dolares que quiere convertir a pesos. Para esto en la linea 21 guardamos esa cantidad que ingresara.

En la linea 24 imprimimos en consola  "Ingrese tasa actual de cambio" en esta parte el usuario tendrá que ingresar la tasa de cambio vigente, ahora guardamos ese valor (linea 27).

En esta pagina pueden encontrar la tasa de cambio actual: http://www.cambiodolar.mx/ 

En la linea 30 solo estamos haciendo la conversión de dolares a pesos con una  simple multiplicación.

Y por ultimo en la linea 33 imprimimos la conversión.

La salida del programa es la siguiente:



Descarga el código: Conversion.java

Inicio en java Ejemplo 2

Este es el segundo ejercicio que va enfocado a personas que estén en su primer curso de java, como les había comentado anteriormente estos programas los realice yo en mi primer curso de java, sin mas que decir aquí el ejercicio:

Solicite el total a pagar de medicamentos en una farmacia. El programa debe de calcular el descuento obtenido del 8% en la venta y el total a pagar por el cliente menos el descuento, imprima el total que se pago según la venta , el descuento que se realizo y el pago de la venta menos el descuento.


CÓDIGO 

/**
 * Archivo: Farmacia.java
 * @autor BelloCerecero
 * @since 10-jul-2013
 **/

import java.util.Scanner;

public class Farmacia
{
  public static void main(String args[])
  {
    //Creamos el objeto teclado
    //Para interactuar con el usuario por consola
    Scanner teclado = new Scanner(System.in);

    //Le solicitamos el total a pagar
    System.out.println("Ingrese el total a pagar: ");

    //Guardamos el total a pagar
    double totalPagar = teclado.nextDouble();

    //Obtenemos el 8% de descuento
    double descuento = (8*100)/totalPagar;

    //Obtenemos el total menos el descuento
    double venta = totalPagar - descuento;

    //Imprimimos todo lo que se nos pide
    System.out.println("Pago de la venta: " + totalPagar);
    System.out.println("Descuento: " + descuento);
    System.out.println("Total: " + venta);
  }
}

Bien, entonces nos ubicamos en la linea 7, aquí estamos importando la clase Scanner para poder interactuar con el usuario por medio de la consola. En la linea 9 creamos nuestra clase a la que llamaremos "Farmacia" y en la linea 11 creamos el main para que el programa pueda ejecutarse.

En la linea 15 estamos instanciando la clase Scanner para poder usar sus métodos  En la linea 18 imprimimos en consola un mensaje para que el usuario introduzca el total a pagar.

En la linea 21 declaramos una variable de tipo double (Por si hay centavos) y en ella guardaremos lo que el usuario halla introducido (para eso se usa "teclado.nextDouble()").

En la linea 24 declaramos una variable de tipo double (por si hay decimales), en esta variable guardaremos el resultado de la siguiente operación: (8*100)/totalPagar
Que no es mas que una regla de tres para obtener el 8% del total a pagar.

En la linea 27 declaramos una ultima variable de tipo double (por si hay decimales), aquí guardaremos la resta del total a pagar menos el ocho por ciento de descuento.

Ya por ultimo hacemos las impresiones.

En la linea 30 imprimimos el total a pagar (sin el descuento), en la linea 31 imprimimos el descuento que se aplicara y en la linea 32 imprimimos el total a pagar pero ya con el descuento.

La salida del programa es:



Descarga el código: Farmacia.java

Inicio en java Ejemplo 1

Este sera el primero de varios programas que estaré publicando, estos programas están dirigidos para personas que están llevando su primer curso de java o estén interesados en aprender lo básico de este lenguaje. Estos programas que estaré publicando, podría decirse que son los clásicos ejercicios que tu profesor les explicara o dejara de tarea. Sin mas preámbulos comenzamos con el primero, bien, el planteamiento del ejercicio es el siguiente:

Hacer un programa en java de una lista de 5 calificaciones, que calcule y almacene el promedio, y posteriormente que lo visualice en la pantalla. La lista de calificaciones son:

77
83
85
72
88

CÓDIGO 

/**
 * Archivo: Calificicaciones.java
 * @Autor BelloCerecero
 * @Since 9-jul-2013
 **/

public class Calificaciones
{
  public static void main(String args[])
  { 
    //Declaración y asignacion de variables
    int calif1 = 77;
    int calif2 = 83;
    int calif3 = 85;
    int calif4 = 72;
    int calif5 = 88;
  
    //variable para almacenar el promedio
    double promedio;
  
    //Proceso para calcular el promedio
    promedio = (calif1 + calif2 + calif3 + calif4 + calif5)/5;
  
    //Imprimimos en consola
    System.out.println("El promedio es: " + promedio);
   }
}

Bien, comenzamos en la linea 1 a la 5 estos son solo comentarios, en la linea 7 inicia nuestra clase a la que llamaremos "Calificaciones", en la linea 9 iniciamos el "main", en la linea 12 estamos declarando e inicializando las variables en donde guardaremos las 5 calificaciones, en la linea 19 declaramos una variable donde guardaremos el promedio de las 5 calificaciones. En la linea 22 hacemos la operación para obtener el promedio (sumamos las 5 calificaciones y las dividimos entre 5 y por ultimo en la linea 25 imprimimos en consola "El promedio es: " concatenando a la variable promedio. La salida del programa es la siguiente:





Nota: El programa esta ejecutado en la terminal de Ubuntu 12.04 LTS, pero es 100% funcional en Windows, se puede usar la consola de windows para su ejecución o algún IDE como NetBeans o Eclipse. O en su defecto se puede usar también JCreator. 

Descarga el programa: Calificaciones.java

junio 29, 2013

Números Perfectos

Hola amigos de Buenas Intenciones hoy les traigo a petición de un seguidor de buenas intenciones un programa de Números Perfectos.
Bueno lo primero que debemos saber es ¿QUE ES UN NÚMERO PERFECTO?.

Un número es perfecto si es igual a la suma de todos sus divisores positivos sin incluir el propio número.
Por ejemplo, el número 6 es perfecto. 
El 6 tiene como divisores: 1, 2, 3 y 6 pero el 6 no se cuenta como divisor para comprobar si es perfecto.
Si sumamos 1 + 2 + 3 = 6 
Los siguientes números perfectos después del 6 son 28, 496, 8128, 33550336, 8589869056.
Una vez explicado este punto pasamos al código de nuestro programa.

package buenasintenciones;
/**
 * @author Ivan
 */
import javax.swing.JOptionPane;

public class NumerosPerfectos {
    public static void main(String[] args) {
        int i, suma= 0, numero;
         String numero1 = JOptionPane.showInputDialog("Ingrese el numero del 1 al 10000");
         numero= Integer.parseInt(numero1);
        for (i = 1; i < numero; i++) { 
            if (numero % i == 0) {
                suma = suma + i;   
            }
        }
        if (suma == numero) {  
            JOptionPane.showMessageDialog(null, "El numero es perfecto");
        } else {
            JOptionPane.showMessageDialog(null, "El numero no es perfecto");

        }
    }
}
Bueno lo primero que tenemos que hacer es declarar la libreria JOptionPane para poder insertar nuestros datos más adelante, declaramos el nombre de nuestra clase en este caso es NumerosPerfectos, declaramos nuestro metodo main. En la linea 10 declaramos tres variables de tipo int con su nombre i, suma(esta con un valor inicial de 0) y numero. En la linea 11 declaramos una variable de tipo String con nombre numero1 y la igualamos con nuestro JOptionPane que sirve para insertar datos y colocamos el comentario entre comillas que queremos que nos muestre. En la 12 tenemos que convertir nuestro valor anterior a un valor entero que es igual a un valor de tipo int, esto ya que nuestro JOptionPane recibio un valor de tipo String. en nuestra linea 13 declaramos un ciclo for con las condiciones i=1, donde este valor i van a ser los divisores y los dividira hasta de 1 hasta n-1, en la linea 14 solo declaramos que si el valor de la suma es un un divisor se sume.
En la 18 declaramos nuestra condicion if diciendo que si es el valor de suma es igual a numero sera un valor perfecto y por ultimo nuestras salidas con un JOption de mensajes.

junio 23, 2013

Herencia

Cuando hablamos de la programación orientada a objetos es inevitable tratar con el tema de la Herencia, ya que es una de la principales características de este enfoque. La herencia es una característica que nos permite la creación de clases (subclase) a partir de una clase ya creada (superclase); de modo que cuando estemos creando una clase y decidimos que va a heredar de otra clase ya existente, lo la clase que estamos creando podrá hacer uno de los métodos y atributos de la clase que ya existe (de la cual heredamos).

Ejemplo:

Creamos una clase Persona y una clase Estudiante, distintas una de la otra:
Bien estas son dos diferentes clases por separado, independientes.
Pero pensemos que un estudiante también tiene los mismos atributos y los mismos métodos que una persona, pero una persona no necesita los mismos atributos y métodos que un estudiante. Entonces pensemos en que la clase estudiante puede heredar los métodos y atributos de la clase Persona, de tal modo que podríamos visualizar algo más o menos así:

La clase Estudiante HEREDA de la clase Persona:

El ejemplo anterior es una analogía con personas (un caso cotidiano) para dejar en claro la esencia de la Herencia. Ahora procederé a mostrarles un código de como se maneja la herencia en Java:

junio 21, 2013

Números aleatorios

Los números aleatorios son de mucha utilidad en ciertas ocasiones, ya que, los podemos usar para ciertos programas que necesiten tomar decisiones sin la intervención del usuario. En fin, hoy hablaremos mas concretamente sobre como generar números aleatorios de tipo entero, para esto, hemos realizado el siguiente ejemplo:

//Archivo: NumerosAleatorios.java

import java.util.Random;

public class NumerosAleatorios
{
  public static void main(String args[])
  {
    //Instanciamos la clase Random
    Random num = new Random();
    System.out.println("Numeros aleatorios generados:");
    System.out.println(num.nextInt(10));
    System.out.println(num.nextInt(10));
    System.out.println(num.nextInt(10));
    System.out.println(num.nextInt(10));
  }
}


Bien, ya dentro del main (linea 9) hemos puesto un comentario, en la linea 10 es donde ya instanciamos la clase Random, para poder utilizarla. En la linea 11 hemos puesto una impresión solo para que salga "Numeros aleatorios generados:", en la linea 12 hasta la 15, con ayuda de un System.out.println(); y usando la siguiente instrucción (dentro del System) num.nextInt(10); (num es el nombre de la instancia linea 10). Ahora algo importante, se preguntaran por que hemos puesto un 10 dentro, bueno ese 10 quiere decir, que, nos va a generar números aleatorios del 0.... al 10, si yo quisiera que me generara del 0... al 6 (por ejemplo), solo tendría que poner un 6 ejemplo:

    System.out.println(num.nextInt(6));

Entonces ya solo generaría números aleatorios del 0... al 6.


La salida del programa es la siguiente:


NOTA: Si ejecutan el programa en sus computadoras, la salida sera diferente en cada ejecución puesto que son NÚMEROS ALEATORIOS.

junio 19, 2013

Setters y Getters

Los setter y getters, son métodos de acceso en una clase, estos sirven para establecer y obtener datos de los atributos de nuestra clase, estos dos métodos deben ser públicos:

El método set (traducción al español: "establecer"): nos sirve para asignar un valor (inicializar) a un atributo de nuestra clase, esto se hace de manera directa con este método, como este método no retorna nada, el nombre de este debe ser precedido por void, y siempre debe recibir un parámetro de entrada.
El método get (traducción al español: "obtener"): este tipo de método accede a la clase para retornarnos el valor de algún atributo que queramos, y como ya mencioné, el método get si debe retornar un valor por lo cual el nombre de este método debe ser precedido por el tipo de valor que vamos a retornar con ese método.

A estos métodos se les suele hacer referencia en plural (como el titulo de este post) porque generalmente son más de un método set y get en una clase, y de este modo nos referimos a todo ese tipo de métodos de establecimiento y obtención de información. Bien, estos métodos se ven así en una clase:

junio 16, 2013

Cubo de Rubik en JAVA

Hola amigos de "Buenas Intenciones", en esta le explicare como hacer el cubo de Rubik utilizando las libreria de OpenGL, que es una libreria para graficos por computadora un poco mas avanzada donde utilizaremos codigo en java  3D, con textura, movimientos de cámara, traslación, rotación.

Primero veamos que es OpenGL proporciona una biblioteca básica de funciones para especificar primitivas gráficas, atributos, transformaciones geométricas, transformaciones de visualización y muchas otras operaciones.
Los nombres de las funciones de la biblioteca básica de OpenGL (también llamada de biblioteca del núcleo
de OpenGL) utilizan como prefijo g l , y cada palabra que forma parte del nombre de una función tiene su
primera letra en mayúscula. Los siguientes ejemplos ilustran este convenio de denominación.
                       glBegin,                glClear,             glCopyPixels,                 glPolygonMode

Bueno sin mas que decir empezamos analizando el codigo linea por linea.
NOTA: Todo el codigo es en una sola clase y esta dividido en fragmentos para facilitar el entendimiento.

//Archivo: Rubik.java
//Autor: Ivan Gallardo
import com.sun.opengl.util.Animator;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;
import javax.swing.JFrame;
import com.sun.opengl.util.GLUT;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.File;
import com.sun.opengl.util.texture.Texture;
import com.sun.opengl.util.texture.TextureIO;
import java.io.IOException;

public class Rubik extends JFrame implements KeyListener{
    static GL gl;
    static GLU glu;
    static GLUT glut;
    static GLCanvas canvas;
    private static float rotarX=0;
    private static float rotarY=0;
    private static float rotarZ=0;
    private static float trasladaX=0;
    private static float trasladaY=0;
    private static float trasladaZ=0;
    private Texture cara1, cara2,cara3,cara4, cara5,cara6;
    private static float EscaX=1.0f;
    private static float EscaY=1.0f;
    private static float EscaZ=1.0f;
    private static float EscaXm=1.0f;
    private static float EscaYm=1.0f;
    private static float EscaZm=1.0f;
    static float rojo=0.0f;
    static float verde=0.0f;
    static float azul=0.0f;
Bueno de la linea de comando 3 a la 16 son las librerias necesarias para los diferentes metodos que

junio 11, 2013

Concatenar cadenas

En java para se puede hacer de dos formas, utilizando el método concat o con el operador +.

Para dar una idea mas clara hemos realizado este pequeño programa:



/**
 * @Archivo: Cadenas.java
 * @author Cerecero 
 * @since 11/junio/2013
 */
public class Cadenas 
{
  public static void main(String[] args) 
  {
    String cadena1 = "Bienvenido a ";
    String cadena2 = "Buenas Intenciones";
        
    String cadena3 = cadena1.concat(cadena2);
    String cadena4 = cadena1 + cadena2;
        
    System.out.println(cadena3);
    System.out.println(cadena4);
  }
}

En la linea 11 y 12 hemos declarado e inicializado dos variables de tipo String, en la linea 14 usaremos el método concat, para concatenar (unir) la cadena1 y cadena2, como se puede observar para hacer esto, se declaro una tercera variable (cadena3), en donde se guardara la nueva String, en otras palabras, lo que estamos diciendo en esta linea es: A cadena3 le vas a asignar la cadena1 concatenada con la cadena2.
En la linea 15 estamos haciendo lo mismo, solo que en vez de usar el método concat, estamos usando el signo +. El resultado es el siguiente:



mayo 14, 2013

Instalación de Java en Ubuntu

Para instalar java en ubuntu existen diferentes métodos, pero la manera mas fácil y sencilla, es usando la terminal. Lo único que necesitamos hacer es lo siguiente:

1.- Abrimos una terminal.


2.- Actualizamos repositorios con sudo apt-get update y presionamos enter.



3.- Escribimos sudo apt-get install openjdk-7-jre y presionamos enter.

abril 26, 2013

Pilas (Stack)

Una pila o stack es una lista de elementos a la cual se le pueden insertar o extraer elementos solo por uno de sus extremos. Las pilas son estructuras de datos en las que la inserción de datos se hace por el frente y la eliminación de los datos de igual manera se hace por el frente, se elimina un dato por el mismo lado de donde se inserta; debido a esta característica de inserción y eliminación de datos también se le conoce como estructura LIFO (Last-In, First-Out: Ultimo en entrar, primero en salir).

Una representación analógica de una pila con objetos cotidianos, podría ser una pila de platos: En una mesa se colocan muchos platos uno encima del otro (una pila de platos), para colocar un nuevo plato en la pila se coloca el plato en la cima de la pila. Para sacar un plato de la pila es necesario sacar el plato que esta encima de la pila (el ultimo plato que fue colocado en la pila de platos).

(a) Una pila de libros. (b) Una pila de CD's. (c) Una pila de platos.

Al igual que en en la analogía de la pila de platos, en las pilas de datos la información se almacena de la misma manera y se inserta nueva información y se elimina un dato del mismo modo. Ahora, para comodidad del lector vamos a representar una pila de datos de la siguiente manera:


En la figura anterior podemos observar una pila de datos con 4 elementos apilados. Podrían ser 4 elementos de cualquier tipo, hablando de programación en Java podrían ser: int, string o incluso objetos.

abril 24, 2013

Longitud de un arreglo

Al manejar arreglos, nos es de mucha ayuda mucho saber su longitud. Pero no solo su longitud de capacidad nos puede ser de ayuda, hay ciertos casos en los que podríamos llegar a necesitar saber la longitud de cada elemento que se encuentra dentro de nuestro arreglo. Para esto, el siguiente programa te muestra una forma de hacerlo.

/**
 * Archivo: LongitudDeUnArreglo.java
 * @author Bello Cerecero
 * @since 24/04/2013
 * @version 1.0
 */
public class LongitudDeUnArreglo 
{
  public static void main(String[] args) 
  {
    String[] arreglo = new String[10];
    arreglo[0] = "Hola";
    arreglo[1] = "Tarde";
        
    System.out.print("La longitud del arreglo es: ");
    System.out.println(arreglo.length);       
    System.out.print("La long. del dato en la posicion 0 es: ");
    System.out.println(arreglo[0].length());
    System.out.print("La long. del dato en la posicion 1 es: ");
    System.out.println(arreglo[1].length());
  }
}
El programa lo que haces es: crear un arreglo de tipo String con una longitud de 10 (linea 11).
Después, al arreglo en la posición 0 le asignamos la String "Hola" y en la posición 1 le asignamos la String "Tarde" (lineas 12 y 13). 
Ahora en la linea 15 imprimimos en consola solamente, en la linea 16 colocando el nombre de nuestro array que para este ejemplo es: "arreglo" y llamando al método "length", nos imprimirá en consola la longitud del arreglo, que para este ejemplo es 10.
En la linea 16 imprimimos en consola solamente. En la linea 17 haciendo referencia al elemento que se encuentra en la posición 0 dentro del arreglo y llamando al método "length()" (la diferencia con el anterior método son los paréntesis), esto nos retornara la longitud del elemento "Hola" que es 4.
Lo mismo pasa en la linea 18.

La salida del programa es la siguiente:

abril 23, 2013

Conversión de grados a radianes

Este método te ayudara a resolver tu conversión de grados a radianes, solo tienes que pasarle el angulo al que quieres hacer la conversión.

public double conversionGaR(double angulo)
{
  double radianes = (angulo*3.14169)/180;
  return radianes;
}

Bien, como vemos es un método muy simple, con un solo parámetro (el angulo) y al hacer la operación retornara la conversión (double).

abril 18, 2013

Uso de la palabra THIS

La palabra this es una referencia al propio objeto en el que estamos. Supongamos que en un método un parámetro tiene el mismo nombre que alguna de nuestra variable de clase, entonces para poder distinguir la sentencia sería de la siguiente manera: this.nombreVariable = nombreParametro

Existen otros tres posibles usos para la palabra this, estos son:
- this.atributo. Para acceder a una propiedad del objeto actual.
- this.método(parámetros). Permite llamara un método del objeto actual con los parámetros indicados.
- this(parámetros). Permite llamar a un constructor del objeto actual. Esta llamada sólo puede ser empleada      en la primera línea de un constructor.

Estos tres usos serán vistos en otras publicaciones, por ahora solo veremos como se hace la referencia al objeto actual. Para esto se realizo el siguiente programa:


/**
 * Archivo: PalabraThis.java
 * @author BelloCerecero
 * @version 1.0
 * @since 18-abril-2013
 */

public class PalabraThis 
{
   private int puntoX;
   private int puntoY;

   public void actualizar(int puntoX, int puntoY)
   {
      this.puntoX = puntoX;
      this.puntoY = puntoY;
   }
}


Bien, como vemos tenemos dos variables atributos, que son "puntoX" y "puntoY" y creamos un método al que llamamos "actualizar" que recibe dos parámetros que tienen el mismo nombre que nuestras variables atributo, entonces en la linea 15 a la variable "puntoX" le agregamos la palabra reservada "this" así que queda de la siguiente manera "this.puntoX", al hacer esto estamos dejando en claro que hacemos referencia a la variable atributo y no al parámetro. Así que a la variable atributo se le asignara el parámetro "puntoX" (sin la palabra reservada this) lo mismo pasa en la linea 16.

marzo 03, 2013

Método split

Supongamos que tenemos la siguiente String: "1,2,3,4,5,6"
Ahora, lo que queremos es "meterla" en un arreglo. Pero de forma independiente cada uno de los valores, es decir, que en cada indice quede un elemento. 

indice[0] = 1
indice[1] = 2
indice[2] = 3
indice[3] = 4
indice[4] = 5
indice[5] = 6

Entonces este método nos es de mucha ayuda, ya que solo le tenemos que pasar de parámetro un delimitador (en este caso seria la coma ","), esto quiere decir que al llamar al método quedaría de la siguiente forma:

aquiVaLaCadena.split(",");

Bien para ejemplificar mejor veamos el siguiente código que implementa este método.


/**
 * @author BelloCerecero
 * @since 3-marzo-2012
 */

public class MetodoSplit 
{
    public static void main(String [] args)
    {
        String cadena = "1,2,3,4,5,6,7,8,9";
        String[] arreglo = cadena.split(",");
        
        for(int i = 0; i < arreglo.length; i++)
        {
            System.out.println("indice " + i +" = "+arreglo[i]);
        }
    }
}

Comencemos en la linea 10, aquí estamos declarando e inicializando una variable de tipo String que tiene: "1,2,3,4,5,6,7,8,9". En la linea 11 viene la utilización del método split, pero ¿Que estamos haciendo realmente? Pues bien primero estamos declarando un arreglo de tipo String y le asignaremos lo que tiene cadena pero con una particularidad, ya que al agregar el método split estamos diciendo que cada vez que se encuentre un limitador (que en este caso es una "coma")se guardara en un indice diferente. 

 La salida del programa es la siguiente:

 

febrero 28, 2013

Limitar el número de decimales

En ciertas ocasiones al manejar números con decimales, al imprimirlos en consola o al mostrarlos en un JTextField salen números con demasiados decimales. Por ejemplo 9.78863242729
Y si solo necesitamos que muestre tres decimales? (Que imprima: 9.788)

Bueno, con este pequeño código podemos solucionar este tipo de inconvenientes  pero algo importante que tengo que recalcar, es que NO CAMBIA EL VALOR DEL NUMERO, es decir, que solo le da formato para que lo muestre, ya sea en consola o en un JTextField.

package ejemplos;
import java.text.DecimalFormat;
/**
 * Archivo: MostrarDecimales.java
 * @author BelloCerecero
 * @since 28-02-2013
 */
public class MostrarDecimales 
{
    public static void main(String[] args) 
    {
      DecimalFormat decimales = new DecimalFormat("0.0000");
      double numero = 7.936427373645;

      System.out.println(decimales.format(numero));
    }
}


Bien, comenzamos en la linea 2, para poder hacer uso de la clase DecimalFormat que es la que nos permitirá hacer nuestro formato de decimales, debemos importarla.

enero 21, 2013

Manejo De Imagenes

Para el manejo de imágenes en java, utilizamos dos clases de la librería swing, que seria JLabel y ImageIcon, con estas podemos realizar una clase con la cual iremos actualizando la imagen cada vez que queramos. Definimos nuestra clase de la siguiente manera:
import javax.swing.ImageIcon;
/**
 * Archivo: ManejoImagen.java
 * @author BelloCerecero
 * @since 6/09/2011
 */
public class ManejoImagen 
{
    private String nombreImagen;
    private ImageIcon imagen;
    
    public ManejoImagen(String nombreImagen)
    {
 this.nombreImagen = nombreImagen;
 imagen = new ImageIcon(nombreImagen + ".gif");
    }
    
    public ImageIcon getImagen()
    {
 return imagen;
    }
    
    public void setImagen(String nuevaImagen)
    {
 imagen = new ImageIcon(nuevaImagen + ".gif");
    }
    
    public String getNombreImagen()
    {
 return nombreImagen;
    }
    
    public void setNombreImagen(String nuevoNombre)
    {
 nombreImagen = nuevoNombre;
    }
}

En la linea uno importamos la clase ImagenIcon, ya dentro de la clase definimos nuestras variables privadas, en este caso sería el nombre de la imagen que es de tipo String y la imagen que es de tipo ImageIcon. El constructor recibirá de parámetro el nombre de la imagen para que así podamos pasársela de parámetro a nuestra imagen (linea 15). Ahora ya solo hacemos los getters y setters de nuestras variables de clase, que actualizaran la imagen y la retornaran. Esta es un simple prueba de como funciona la clase ManejoImagen:

Estructura básica de un programa orientado a objetos

Al utilizar POO hacemos que los problemas sean mas sencillos de resolver, ya que lo dividimos en partes. Ahora estas divisiones (por así llamarlos) son los objetos, pero no podemos utilizarlos sin antes haber creado la clase y así poder hacer la instancia de clase. Bien para aclarar esto haremos el muy utilizado ejemplo de una persona. Primero que nada debemos pensar el nombre que llevara la clase, en este caso no hay necesidad de tanto pensarle ya que "Persona" es mas que claro. Ahora tenemos que identificar todos los atributos de una persona, los cuales pueden ser: la edad, estatura y color de pelo.
Solo usaremos esas, bien ya que tenemos definidos los atributos de la clase tendremos que asignarle el tipo de dato mas conveniente, en el caso de la edad sería de tipo int, la estatura sería double y el color de pelo sería String.



Ya bien definidas nuestras variables de clase, continuamos a programar. El programa tendrá una estructura, que es la siguiente:
          1) Declaración de variables.
          2)Constructor.
          3) Métodos.

Entonces declaramos las variables de clase, dependiendo el caso pueden llevar la palabra reservada: public, protected o private.

private int edad;
private double estatura;
private String colorPelo;
El constructor recibirá de parámetros la edad, la estatura y el color de pelo. Y utilizando la palabra reservada "this" (para hacer referencia a la variable de clase) asignaremos a cada variable de clase el parámetro correspondiente.