Hay ocasiones en las que necesitamos conocer el valor de un carácter en otros valores numéricos, pero a veces resulta que hemos olvidado la tabla de códigos que nos entrego el profesor, o el libro donde vimos anotada la tabla no lo hemos traído.
En esta ocasión aprenderemos a Convertir un Carácter a:
- Decimal
- Hexadecimal
- Octal
Con el lenguaje Java, no hace falta conocimiento a fondo y realizar operaciones de conversión, simplemente con utilizar la libreria java.util, nosotros podremos disponer de un sencillo conversor.
Este ejemplo fue desarrollado con Blue-J, si no tienes el IDE, no te preocupes puedes usar algún otro IDE.
Empezaremos por crear una nueva clase a la que yo le he puesto el nombre conversor.java
Comenzaremos escribiendo las librerias que necesitaremos para ejecutar nuestra aplicación, como será una aplicación gráfica incluiremos javax.swing, java.awt.*, y java.awt.event.*, sin olvidarnos de java.util.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
Recuerda que import debe de ser minúscula.
Ahora nuestra clase le agregaremos la directiva Extends JFrame Para indicar que diseñaremos un frame.
public class conversor extends JFrame
Bien, hasta ahorita ya tenemos el principio, lo siguiente es crear la interfaz gráfica, lo más tardado, pero vale la pena.
Comenzaremos por crear las etiquetas, las cuales he creado yo con los siguientes nombres.
JLabel entrada = new JLabel ("Escriba carácter a convertir: ");
JLabel decimal = new JLabel ("Valor Decimal: ");
JLabel hexade = new JLabel ("Valor Hexadecimal: ");
JLbael octal = new JLabel ("Valor Octal: ");
Ahora creare los cuadros de entrada de información y a la vez salida.
JTextField entrada_ = new JTextField ("");
JTextField decimal_ = new JTextField ("");
JTextField hexade_ = new JTextField ("");
JTextField octal_ = new JTextField ("");
Botones
//------ Boton ------
JButton boton = new JButton ("Convertir");
JButton borrar = new JButton ("Borrar");
Hasta aquí ya tenemos las etiquetas y cuadro de diálogos, ahora a declarar variables.
char auxiliar;
String cadena;
Ya esta terminada la primera fase del programa, la siguiente es crear el componente de ejecución e inicializar las variables dentro del constructor:
public conversor()
{
}
Dentro del constructor agregaremos el siguiente fragmento de código que nos permite dibujar en pantalla el marco de acuerdo a nuestras necesidades en pixeles. Nota: Cada usuario o programador tiene una forma distinta de mostrar las aplicaciones.
super("Nombre de la ventana");
this.setSize(400, 400);
setResizable(false);
setLayout(null);
Dimension pantalla, cuadro;
pantalla = Toolkit.getDefaultToolkit().getScreenSize();
cuadro = this.getSize();
this.setLocation(((pantalla.width - cuadro.width) / 2), (pantalla.height - cuadro.height) / 2);
setLayout(null);
Seguido de este fragmento de código procedemos a dibujar la aplicación.
//----- Dibujando la aplicación -----
entrada.reshape(10,10,180,20);
add(entrada);
entrada_.reshape(180,10,100,20);
add(entrada_);
decimal.reshape(10,40,100,20);
add(decimal);
decimal_.reshape(150,40,100,20);
add(decimal_);
hexade.reshape(10,70,140,20);
add(hexade);
hexade_.reshape(150,70,100,20);
add(hexade_);
octal.reshape(10,100,100,20);
add(octal);
octal_.reshape(150,100,100,20);
add(octal_);boton.reshape(10,130,90,20);
add(boton);
borrar.reshape(140,130,90,20);
add(borrar);
Bien, ahora siguen las operaciones con los campos, las cuales haremos de la siguiente manera:
getText: Sirve para obtener valores del campo.
SetText: Sirve para agregar resultados al campo.
Crearemos un nuevo evento con el botón llamado boton, este eventos nos va a permitir hacer las operaciones de conversión
boton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
//---- Utilería para obtener el valor-----
Scanner obtener = new Scanner (System.in);
//------ Convertimos el String del TextField a char ------
// Por definición los textfield son cadenas
cadena = entrada_.getText();
auxiliar = cadena.charAt(0); //charAt es un método de la clase String. auxiliar almacena el valor de cadena.//------ Métodos de Conversión de Char a Decimal-----
cadena = Integer.toString((int)auxiliar);
decimal_.setText(cadena);
//----- Método de Conversión de Char a Hexadecimal------
cadena = Integer.toHexString((int)auxiliar);
hexade_.setText(cadena);
//----- Método de Conversión de Char a Octal-----
cadena = Integer.toOctalString((int)auxiliar);
octal_.setText(cadena);
}
}
);
De esta forma quedarán convertidos nuestros carácteres, pero ¿Si quiero borrar los resultados?, bien ahora crearemos un nuevo método con el botón llamado borrar.
//------ Método para vaciar los formularios-----
borrar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
entrada_.setText("");
decimal_.setText("");
hexade_.setText("");
octal_.setText("");
}
});
Como puedes ver el método para borrar es muy simple, pues solo es resetear los formularios.
Ahora nos dirigimos a nuestra clase principal que es la que comienza con public static vod main (String [] arguments)
En esta vamos a crear la visualización de la pantalla de la siguiente manera:
conversor cv = new conversor();
cv.show();
cv.addWindowListener (new WindowAdapter()
{
public void windowClosing (WindowEvent evt)
{
System.exit(0);
}
}
);
El método windowClosing nos va a permitir terminar la aplicación de una forma correcta sin que quede en memoria, ya de esta forma podemos correr nuestro programa, el cual lucirá como en la siguiente imagen:



