¿Qué es javax.swing.JTextField y cómo se utiliza en Java para campos de texto?

| Última modificación: 13 de enero de 2025 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Algo que realmente me sacaba de mis casillas cuando estaba creando mi primera aplicación gráfica en Java, era que no sabía cómo hacer que los usuarios ingresaran texto de manera sencilla y práctica. Lo bueno fue que, después de muchos intentos, hallé la solución en javax.swing.JTextField y logré capturar datos como nombres, números y otras entradas textuales en tiempo real. Así que, te lo enseñaré para que logres crear campos de texto interactivos en tus aplicaciones Java.

javax.swing.JTextField qué es

¿Qué es javax.swing.JTextField?

No sé si has visto esos buzones que hay afuera de las casas, pero javax.swing.JTextField es muy similar. Me refiero a que es como un pequeño buzón donde los usuarios pueden escribir información que tu aplicación necesita. Es excelente para capturar textos de una sola línea, como nombres, correos electrónicos o palabras clave. Lo que me parece grandioso es que es altamente personalizable, así que puedes ajustar su tamaño, estilo y comportamiento según tus necesidades.

Características

  • Captura de texto en tiempo real: El usuario puede escribir y editar texto dinámicamente.
  • Personalización visual: Cambia fuentes, colores y estilos para mejorar la experiencia del usuario.
  • Facilidad de integración: Puedes asociarlo con eventos como presionar un botón o realizar validaciones.

Constructores más utilizados de javax.swing.JTextField

Recuerda, dependiendo de tus necesidades, puedes crear un campo de texto con diferentes configuraciones:

  1. JTextField(): Crea un campo de texto vacío.
  2. JTextField(int columns): Define un campo de texto con un número específico de columnas.
  3. JTextField(String text): Inicializa el campo con un texto predeterminado.
  4. JTextField(String text, int columns): Combina texto inicial con un número de columnas.

Métodos esenciales de JTextField

Te dejo una lista de los mejores métodos para trabajar con javax.swing.JTextField:

  • setColumns(int n): Configura el número de columnas visibles.
  • setFont(Font f): Cambia el estilo y tamaño de la fuente.
  • addActionListener(ActionListener l): Asocia un evento cuando se interactúa con el campo.
  • getText(): Obtiene el texto ingresado.
  • setText(String text): Establece un texto en el campo.

¿Cómo usar javax.swing.JTextField? Ejemplos prácticos

Capturando texto con eventos

En este ejemplo, crearemos un campo de texto donde el usuario podrá ingresar su nombre y, al presionar un botón, mostrarlo en pantalla.

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextFieldExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Ejemplo JTextField");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 150);

// Crear campo de texto y botón
JTextField textField = new JTextField(20);
JButton button = new JButton("Mostrar texto");
JLabel label = new JLabel("Introduce tu nombre:");

// Evento al presionar el botón
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String texto = textField.getText();
JOptionPane.showMessageDialog(frame, "Hola, " + texto);
}
});

// Añadir componentes al panel
JPanel panel = new JPanel();
panel.add(label);
panel.add(textField);
panel.add(button);

frame.add(panel);
frame.setVisible(true);
}
}

Con este código, capturamos el texto ingresado por el usuario y lo mostramos en un cuadro de diálogo. Este es un ejemplo clásico de interacción básica en interfaces gráficas.

Personalizando fuentes y estilos

En este caso, personalizaremos la apariencia del campo de texto para que destaque visualmente.

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

public class StyledTextField {
public static void main(String[] args) {
JFrame frame = new JFrame("JTextField Personalizado");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 150);

// Crear campo de texto con estilo personalizado
JTextField textField = new JTextField("Texto inicial", 20);
Font font = new Font("SansSerif", Font.BOLD, 16);
textField.setFont(font);
textField.setForeground(Color.BLUE);
textField.setBackground(Color.LIGHT_GRAY);

JPanel panel = new JPanel();
panel.add(textField);

frame.add(panel);
frame.setVisible(true);
}
}

Mira que un diseño atractivo mejora la experiencia del usuario y hace que la interfaz sea más intuitiva.

Validando entradas de texto

Aquí implementaremos una validación simple que verifica si el usuario ha ingresado un número.

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextValidationExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Validación de JTextField");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 150);

JTextField textField = new JTextField(15);
JButton button = new JButton("Validar");
JLabel label = new JLabel("Introduce un número:");

button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String input = textField.getText();
try {
Integer.parseInt(input);
JOptionPane.showMessageDialog(frame, "Es un número válido");
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "No es un número válido");
}
}
});

JPanel panel = new JPanel();
panel.add(label);
panel.add(textField);
panel.add(button);

frame.add(panel);
frame.setVisible(true);
}
}

Aquí te mostré que, validar las entradas de texto asegura que los datos ingresados sean correctos antes de procesarlos.

Consejos para usar correctamente JTextField

  1. Personaliza según el propósito: Ajusta el tamaño y estilo para adaptarlo al contexto.
  2. Valida entradas: Siempre verifica que los datos sean válidos para evitar errores en tu aplicación.
  3. Combina con eventos: Usa ActionListener para añadir interactividad al campo de texto.

Ahora sabes que javax.swing.JTextField es indispensable para capturar entradas de texto en aplicaciones Java. A mí me ha parecido un gran recurso para que cualquier desarrollador lleve a cabo su trabajo de manera fácil. Ya sea que necesites un campo de texto simple o uno personalizado, ahora tienes las herramientas para implementarlo.

¿Quieres aprender a crear aplicaciones gráficas y convertirte en un experto en Java? En nuestro Bootcamp de Java Full Stack de KeepCoding, no solo comprenderás componentes como javax.swing.JTextField, sino que también aprenderás a desarrollar aplicaciones completas desde cero. ¡Apúntate y lleva tu carrera tecnológica al siguiente nivel!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos