Test: Descubre qué bootcamp es para ti

whatsapp keepcoding

¿Qué es javax.swing.JButton y cómo crear botones interactivos en Java?

| Última modificación: 10 de enero de 2025 | Tiempo de Lectura: 3 minutos

¿Botones en Java? Sí, yo tampoco lo creía, pero cuando creé aplicaciones gráficas me pareció muy emocionante lo de las interfaces interactivas y terminaba añadiéndole botones a todo, porque era como darle vida propia a mi software. Con javax.swing.JButton logré todo eso fácilmente, ya que es una clase con la que mis aplicaciones metafóricamente cobran vida. Acércate y te cuento cómo crear botones en Java y capturar sus eventos. Te sorprenderá lo fácil que es y lo bien que quedarán tus aplicaciones.

javax.swing.JButton qué es

¿Qué es javax.swing.JButton?

No hay mucho que decir sobre javax.swing.JButton, porque es prácticamente como un interruptor que tú presionas e inmediatamente se ejecuta una acción específica en tu aplicación. Resulta que este componente de Java Swing se diseñó para crear botones en interfaces gráficas. Estos botones pueden mostrar texto, íconos o ambos, y reaccionar a eventos como clics del usuario.

Características de javax.swing.JButton:

  1. Flexibilidad: Lo grandioso es que puedes personalizar el texto, el tamaño, los colores y los íconos del botón. De modo que tus aplicaciones serán únicas.
  2. Eventos interactivos: Captura clics utilizando la interfaz ActionListener.
  3. Compatibilidad: Como te dije, forma parte de Java Swing, lo que garantiza un diseño multiplataforma.

Creando un botón básico con javax.swing.JButton

Lo primero que te explicaré, por supuesto, será cómo crear un botón. Ten presente que, para usar un botón en Java, necesitas un contenedor como JFrame y un objeto de la clase JButton.

Mira este ejemplo básico que preparé para ti:

import javax.swing.*;

public class SimpleButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Botón Simple");
JButton button = new JButton("Haz clic aquí");

frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);

button.setBounds(100, 80, 120, 30);
frame.add(button);

frame.setVisible(true);
}
}

Capturando eventos de clic con ActionListener

Ya te expliqué que, para capturar eventos, debes implementar la interfaz ActionListener y su método actionPerformed().

Jamás olvides que este método se ejecuta automáticamente cuando el usuario hace clic en el botón.

Ejemplo: Botón que cierra la ventana

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

public class CloseButtonExample extends JFrame implements ActionListener {
JButton closeButton;

public CloseButtonExample() {
setLayout(null);

closeButton = new JButton("Cerrar");
closeButton.setBounds(100, 100, 120, 30);
closeButton.addActionListener(this);

add(closeButton);

setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == closeButton) {
System.exit(0);
}
}

public static void main(String[] args) {
new CloseButtonExample();
}
}

Personalizando botones con javax.swing.JButton

Te voy a dejar ejemplos de lo que más me gusta a mí, la parte de la personalización. Empecemos:

Texto e íconos

Mira que puedes añadir texto y/o íconos a los botones para mejorar la experiencia del usuario. Te lo muestro aquí:

import javax.swing.*;

public class IconButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Botón con Ícono");
ImageIcon icon = new ImageIcon("icono.png");
JButton button = new JButton("Presiona", icon);

frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);

button.setBounds(100, 100, 180, 40);
frame.add(button);

frame.setVisible(true);
}
}

Habilitar o deshabilitar botones

Así de fácil podrás habilitar o deshabilitar botones, según lo que necesites:

button.setEnabled(false); // Deshabilita el botón
button.setEnabled(true); // Habilita el botón

Cambiar colores y fuente

Desde luego, también puedes cambiar los colores y la fuente, dándole ese toque único a cada botón:

button.setBackground(Color.BLUE);
button.setForeground(Color.WHITE);
button.setFont(new Font("Arial", Font.BOLD, 14));

Ejemplo práctico: Múltiples botones con diferentes acciones

Ahora te voy a mostrar cómo trabajar con varios botones y capturar sus eventos. En serio es muy sencillo, mira:

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

public class MultiButtonExample extends JFrame implements ActionListener {
private JButton button1, button2, button3;

public MultiButtonExample() {
setLayout(null);

button1 = new JButton("Botón 1");
button1.setBounds(50, 100, 100, 30);
button1.addActionListener(this);

button2 = new JButton("Botón 2");
button2.setBounds(160, 100, 100, 30);
button2.addActionListener(this);

button3 = new JButton("Botón 3");
button3.setBounds(270, 100, 100, 30);
button3.addActionListener(this);

add(button1);
add(button2);
add(button3);

setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
setTitle("Presionaste el Botón 1");
} else if (e.getSource() == button2) {
setTitle("Presionaste el Botón 2");
} else if (e.getSource() == button3) {
setTitle("Presionaste el Botón 3");
}
}

public static void main(String[] args) {
new MultiButtonExample();
}
}

Consejos para trabajar fácilmente con javax.swing.JButton

  1. Usa nombres descriptivos: Nombrar tus botones y variables de forma clara facilita el mantenimiento del código.
  2. Organiza los eventos: Si trabajas con muchos botones, utiliza clases internas para manejar eventos específicos.
  3. Aplica diseño consistente: Asegúrate de que los botones tengan tamaños, colores y estilos coherentes en tu interfaz.

Con javax.swing.JButton, puedes crear botones interactivos que transforman tus aplicaciones gráficas en experiencias dinámicas y funcionales. Desde lo básico hasta personalizaciones avanzadas, esta clase es esencial para cualquier desarrollador de interfaces en Java.

¿Te gustaría profundizar aún más en el desarrollo Java? En nuestro Bootcamp de Java Full Stack de KeepCoding aprenderás desde la creación de interfaces gráficas hasta el desarrollo de aplicaciones completas en tiempo récord. ¡Inscríbete hoy y lleva tu carrera al siguiente nivel!

Posts más leídos