Area de Texto

    Las áreas de texto en realidad no son tan difíciles de implementear en nuestro código, porque como sabemos para programar solo se necesitan dos cosas, lógica y saber un poco de ingles. Si tenemos eso seremos buenos programadores.

    Las áreas de texto se encuentran en la librería AWT, y existen dos tipos esenciales, el "TextArea" y el "TextField", que son el área de texto y el campo de texto.

    Estas son muy diferentes, ya que un "TextArea" es enorme, en ella podemos almacenar caracteres de forma practicamente ilimitada, y un "TextField" es un recuadro que podemos posicionar y dimensionar según queramos y solo admite una línea de texto, es mas práctico para la parte de pedir datos sencillos.

    Para tener una idea de todo esto un "TextArea" lo podemos vizualizar en el bloc de notas, al abrirlo notamos que podemos escribir en el programa, pero en realidad estamos escribiendo en un área de texto. 

    No solo existen estos dos, también estan los siguientes:

  • PasswordField: campo para pedir contraseñas.
  • JFormattedTextField: este es un campo como el "TextField", pero a diferencia, éste permite utilizar formatos específicos que queramos, ideal para trabajar con fechas y números.
  • JEditorPane y JTextPane: estos admiten varias opciones simultaneamente, puede tener distintos tipos de letras, colores y tamaños. 

    Estos son algo complejos y distintos de usar al los dos mencionados anteriormente. Ya que hemos realizado un frame en la entrada anterior, vamos a aplicar un "TextArea" a dicho frame, para hacer un editor de texto sumamente sencillo, en el cual solo vamos a ver como funciona la parte de texto.

    Como siempre voy a ir paso por paso para que veamos el funcionamiento, lo primero que debemos hacer es declarar el área de texto de forma global.

             TextArea VARIABLE = new TextArea()

    Luego en el método público, donde declaramos los "MenuItems" y los añadimos al Frame, vamos a agregar el área de texto que hemos creado, y al igual que los items, se agrega con la línea de código "add".

             add(VARIABLE)

    Luego de esto, le indicamos al programa que colores utilizara para dicha área de texto.

             VARIABLE.setBackground(Color.COLORAELEGIR)

             VARIABLE.setFont(new Font("LETRA",Font.ESTILO,TAMAÑO))

    En donde el "Background" es el fondo y el "Font" es el tipo de letra.

    En la parte de "setBackground" podemos elegir distintos colores, pero estos deben ir en ingles, como por ejemplo si queremos el amarillo de fondo colocamos lo siguiente:

             VARIABLE.setBackground(Color.yellow)

    O si queremos el blanco, que es el que se usa por defecto:

             VARIABLE.setBackground(Color.white)

    Y en la parte de "setFont", donde dice "LETRA" es el tipo de letra, esta debe ir entre comillas y debe ser escrita según el nombre de la fuente que queramos, como por ejemplo "Verdana", "Time New Roman", "Arial", etc. Donde dice "ESTILO" seleccionamos si queremos que sea normal, negrita o cursiva. Y donde dice "TAMAÑO" colocamos, en valor numérico, el tamaño de la letra que ira en el área de texto.

    Los estilos de letras tienen su sintaxis, y es la siguiente:

  • Font.BOLD: Fuente Negrita.
  • Font.PLAIN: Fuente Normal.
  • Font.ITALIC: Fuente Cursiva

    Por ejemplo, si queremos que nuestra letra sea Arial, negrita y de tamaño 18, colocamos lo siguiente:

             VARIABLE.setFont(new Font("Arial",Font.BOLD,18))

    O si queremos que sea de tamaño normal, verdana y cursiva:

             VARIABLE.setFont(new Font("Verdana",Font.ITALIC,12)).

    Igualmente no es necesario colocar estas opciones, esto es solo si queremos algo más de estilo visual para que el usuario disfrute más del programa y no usar colores monotonos y aburridos, pero cuidado con esto ya que colores fuertes pueden cansar mucho la vista y provocar que el programa sea de desagrado.

    Ahora que vimos esto y para que no queden dudas de como se utiliza un "TextArea", dejo un enlace del ejemplo del frame anterior pero añadiendo esta parte del área de texto:

import java.awt.*;
import javax.swing.*;

public class Prueba extends Frame
{
MenuBar BARRA = new MenuBar();
Menu MENU1 = new Menu("Menu1");
Menu MENU2 = new Menu("Menu2");
MenuItem ITEMa1 = new MenuItem("Item1");
MenuItem ITEMa2 = new MenuItem("Item2");
MenuItem ITEMb1 = new MenuItem("Item1");
MenuItem ITEMb2 = new MenuItem("Item2");
TextArea MIAREA = new TextArea();
public Prueba()
{
super("Primera Ventana");

add(MIAREA);
MIAREA.setBackground(Color.yellow);
MIAREA.setFont(new Font("Verdana",Font.ITALIC,12));

setLocation(100,100);

setSize(200,100);
setMenuBar(BARRA);
BARRA.add(MENU1);
BARRA.add(MENU2);
MENU1.add(ITEMa1);
MENU1.add(ITEMa2);
MENU2.add(ITEMb1);
MENU2.add(ITEMb2);

show();
}

public boolean handleEvent(Event evt)
{
if (evt.id == Event.WINDOW_DESTROY) //Método para cerrar
System.exit(0); //el Frame (ventana)

if (evt.target instanceof MenuItem) //Métodos a utilizar para cada opción
{
if("Item1".equals(evt.arg))
JOptionPane.showMessageDialog(null, "Este es el Item1", 
"Item1", JOptionPane.INFORMATION_MESSAGE);
if("Item2".equals(evt.arg))
JOptionPane.showMessageDialog(null, "Este es el Item2",
"Item2", JOptionPane.INFORMATION_MESSAGE);
return (true);
}

return super.handleEvent(evt);
}

public static void main(String[] arg)
{
JOptionPane.showMessageDialog(null,"Usted a creado un Frame");
new Prueba();
}
}

    En este ejemplo vemos que es sumamente sencillo de hacer, y que podemos escribir caracteres a nuestro antojo, también podemos cambiar la letra y el fondo a nuestro gusto, es solo cuestion de modificar el código anteriormente explicado. Tambíen podemos aumentar el tamaño inicial del área de texto modificando el tamaño del Frame para vizualizar un área mayor.



4 Comentarios

Escribir Comentario
4 de septiembre de 2009, 2:04 delete

Hola carlitox, aqui visitando tu blog nuevamente, llegue de nuevo a tu blog porque andaba buscando en google como hacer que la instruccion equals de Java no distinga las mayusculas de las minusculas esto es lo que quiero hacer:
int base=0;
String end;
System.out.println("Quiere continuar?");
end=in.readString();
if (end. equals ("no"))
base=99999999;
sobre la linea de la instruccion if no quiero que haya diferencia entre un "NO" y un "no"
que si se pone "NO" o "no" de todas formas la variable base tome el valor de 99999999
espero y me haya explicado...y si no es posible hacer eso asi, entonces de que manera podria evitar que un "NO" y un "no" sean diferentes???
Gracias de antemano.

Responder
avatar
4 de septiembre de 2009, 14:10 delete

Bueno, para hacerlo mas sencillo podrias pasar todos los caracteres que se introducen a minúsculas o mayusculas, por ejemplo, si escribo "NO" el programa lo cambia a "no" y luego compara, para eso utilizamos el lowercase o uppercase.

En esta entrada explico como hacerlo con cada caracter.

Aunque creo que seria mejor un panel de swing mostrando un mensaje con dos botones, si y no. Suerte..!!

Responder
avatar
5 de septiembre de 2009, 1:44 delete

ps sinceramente no se que es lowercase o uppercase, se utilizar Java pero solo lo basico...estoy estudiando para programador pero en la escuela aun no hemos visto eso de hacer botones...y no se que es eso de lowercase o uppercase, es la primera ves que lo veo...pero de todas formas gracias...y ps tendre que aprender con tu blog, ya que en mi escuela vamos...lento muy lento porque la mayoria de mis compañeros no entienden la logica de la programacion....
saludos!!

Responder
avatar
5 de septiembre de 2009, 16:53 delete

Bueno, también se me olvido decirte algo muy importante, puedes usar ese ".equal" y agregar que no distinga mayúsculas de minúsculas de esta manera ".equalsIgnoreCase". Quedaría así:

end.equalsIgnoreCase("no")

También lo de los botones seria bueno que leyeras de ello, aquí te dejo esta entrada que explica algo de SWING.

Java Swing

Saludos, y recuerda suscribirte a mi blog ;)

Responder
avatar

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión