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.
Recibe notificaciones por correo