Componentes Básicos: JTextField,JPasswordField y JTextArea - JPanel

Class JTextField

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JTextField
El componente JTextField es objeto de la misma clase el cual es caja para introducir texto. Suele usarse con etiquetas que las identifican, seguramente todos completamos unos cuantos regristraciones.
Cuenta con 5 constructores:
  • JTextField()
    • Simple, crea un campo de texto sin paramétros.
  • JTextField(int columns)
    • Crea un campo de texto con el número específico de columnas descripto.
  • JTextField(String text)
    • Crea un campo de texto con el String como contenido.
  • JTextField(String text, int columns)
    • Crea un campo de texto con el String como contenido y el número específico de columnas descripto.
  • JTextField(Document doc, String text, int columns)
    • Construye un nuevo JTextField que utiliza el modelo de almacenamiento de texto determinado y el número determinado de columnas.

Class JPasswordField

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JTextField
javax.swing.JPasswordField
La clase JPasswordField es sub-clase de JTextField y la idea claro está es la de ingresar texto a un JTextField pero protegiendo a través de un ocultamiento de las letras ingresadas (Seguramente sabemos de que hablo). Cuenta con los mismo constructores de JTextField.

Ejemplo:

  1. import java.awt.*;
  2. import javax.swing.*;
  3. public class CamposTextos extends JFrame{
  4.     JPanel panel1 = new JPanel();
  5.     JPanel panel2 = new JPanel();
  6.     JLabel etiqueta1 = new JLabel("  Usuario:     ");
  7.     JLabel etiqueta2 = new JLabel("Contraseña:");
  8.     JTextField campo1 = new JTextField("Escriba su nombre...", 15);
  9.     JPasswordField campo2 = new JPasswordField("Contraseña", 15);
  10.     JButton aceptar = new JButton("Aceptar");
  11.     JButton cancelar = new JButton("Cancelar");
  12.     CamposTextos(){
  13.         super("Campos de Textos");
  14.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15.         setSize(280,140);
  16.         setLocationRelativeTo(null);
  17.         setVisible(true);
  18.         GridLayout grid = new GridLayout(2,1);
  19.         setLayout(grid);
  20.         panel1.add(etiqueta1);panel1.add(campo1);
  21.         panel1.add(etiqueta2);panel1.add(campo2);
  22.         FlowLayout flow1 = new FlowLayout();
  23.         panel1.setLayout(flow1);
  24.         add(panel1);
  25.         panel2.add(aceptar);panel2.add(cancelar);
  26.         panel1.setLayout(flow1);
  27.         add(panel2);
  28.     }
  29.     public static void main(String[] args) {
  30.         new CamposTextos();
  31.     }
  32. }


Class JTextArea

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JTextArea
El area de Texto JTextArea es igual al "JTextField" que además de columnas incluye filas. Se suele usar en los formularios junto a la etiqueta "observaciones".

Constructores

  • JTextArea()
    • Constructor básico sin paramétros.
  • JTextArea(int rows, int columns)
    • Construye un area de texto con el número específico de filas y columnas.
  • JTextArea(String text)
    • Construye un área de texto con un texto inicial.
  • JTextArea(String text, int rows, int columns)
    • Combina los 2 anteriores, filas y colimnas más un texto inicial.
  • JTextArea(Document doc)
    • Construye un nuevo JTextArea con el modelo de documento dado, y por defecto para todos los otros argumentos (null, 0, 0).
  • JTextArea(Document doc, String text, int rows, int columns)
    • Combina todos los anteriores.

Ejemplo

  1. import java.awt.*;
  2. import javax.swing.*;
  3. public class AreadeTexto extends JFrame{
  4.     JPanel panel1 = new JPanel();
  5.     JPanel panel2 = new JPanel();
  6.     JLabel etiqueta1 = new JLabel(" Observaciones: ");
  7.     JTextArea area = new JTextArea(8, 15);
  8.     JButton aceptar = new JButton("Aceptar");
  9.     JButton cancelar = new JButton("Cancelar");
  10.     AreadeTexto(){
  11.         super("Area de Textos");
  12.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13.         setSize(263,376);
  14.         setLocationRelativeTo(null);
  15.         setVisible(true);
  16.         GridLayout grid = new GridLayout(2,2);
  17.         setLayout(grid);
  18.         area.setToolTipText("Area de Texto");
  19.         panel1.add(etiqueta1);panel1.add(area);
  20.         FlowLayout flow1 = new FlowLayout();
  21.         panel1.setLayout(flow1);
  22.         add(panel1);
  23.         panel2.add(aceptar);panel2.add(cancelar);
  24.         panel1.setLayout(flow1);
  25.         add(panel2);
  26.     }
  27.     public static void main(String[] args) {
  28.         new AreadeTexto();
  29.     }
  30. }


Class JPanel

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
La clase JPanel subdivide el área de una interface en secciones más pequeñas. Al intentar poner componentes a un marco se vera el inconveniente de que cada uno ocupa el area total del marco (Si no le se aplica un gestor de diseño) y no pueden ser visible 2 juntos. Por Ejemplo:
  1. import javax.swing.*;
  2. public class Paneles {
  3.     public static void main(String[] args) {
  4.         JButton boton = new JButton("Hola");
  5.         JTextField texto = new JTextField(15);
  6.         JFrame marco = new JFrame();
  7.         marco.setSize(300,300);
  8.         marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  9.         marco.setVisible(true);
  10.         marco.add(boton);
  11.         //marco.add(texto);
  12.     }
  13. }
Al ejecutar el código veremos la primera ventana pero al dejar de comentar la inclución del segundo componente veremos la segunda ventana: (de la misma forma si invertimos el orden en que aparecen los "add")

Para resolver este inconveniente usamos "JPanel" para dividir el marco en una sección en la que entren los componentes. Lo que debemos hacer es:
  • Crear el panel:
    • JPanel panel = new JPanel();
  • Agregar los componentes a el panel:
    • panel.add(boton);
    • panel.add(texto);
  • Agregar el panel al marco:
    • marco.add(panel);
  1. import javax.swing.*;
  2. public class Paneles {
  3.     public static void main(String[] args) {
  4.         JButton boton = new JButton("Hola");
  5.         JTextField texto = new JTextField(15);
  6.         JPanel panel = new JPanel();
  7.        
  8.         JFrame marco = new JFrame();
  9.         marco.setSize(300,300);
  10.         marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.         marco.setVisible(true);
  12.        
  13.         panel.add(boton);
  14.         panel.add(texto);
  15.         marco.add(panel);
  16.     }
  17. }

No hay comentarios:

Publicar un comentario