Componentes de Acción en Swing
Componentes de acción
Los componentes de acción en Swing son elementos interactivos que permiten al usuario realizar acciones específicas en la interfaz gráfica.
JButton
JButton es un componente que representa un botón que puede ser presionado por el usuario para iniciar una acción.
Se utiliza para permitir al usuario iniciar acciones específicas en la aplicación, como enviar un formulario, abrir un diálogo o ejecutar una operación.
Uso
- Se crea una instancia de
JButton, generalmente con un texto descriptivo. - Se añade un
ActionListenerpara manejar el evento de clic. - Se añade el botón a un contenedor en la interfaz.
Ejemplo:
1import javax.swing.*;2import java.awt.*;3import java.awt.event.ActionEvent;4import java.awt.event.ActionListener;5
6public class EjemploJButton {7 private JFrame frame;8 private JButton boton;9 private JLabel etiqueta;10
11 public EjemploJButton() {12 inicializarComponentes();13 }14
15 private void inicializarComponentes() {16 frame = new JFrame("Ejemplo JButton");17 frame.setSize(300, 200);18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);19 frame.setLayout(new FlowLayout());20 frame.setLocationRelativeTo(null);21
22 boton = new JButton("Haz clic aquí");23 etiqueta = new JLabel("Esperando clic...");24
25 boton.addActionListener(new ActionListener() {26 @Override27 public void actionPerformed(ActionEvent e) {28 etiqueta.setText("¡Botón presionado!");29 }30 });31
32 frame.add(boton);33 frame.add(etiqueta);34 }35
36 public void mostrar() {37 frame.setVisible(true);38 }39
40 public static void main(String[] args) {41 SwingUtilities.invokeLater(() -> {42 EjemploJButton app = new EjemploJButton();43 app.mostrar();44 });45 }46}Información:
- Creamos un
JButtoncon el texto “Haz clic aquí”. - Añadimos un
ActionListenerque actualiza el texto de una etiqueta cuando se presiona el botón. - El botón y la etiqueta se añaden al frame para su visualización.
JCheckBox
JCheckBox es un componente que representa una opción que puede ser seleccionada o deseleccionada.
Se utiliza para permitir al usuario seleccionar una o múltiples opciones de un conjunto de alternativas.
Uso
- Se crea una instancia de
JCheckBoxcon un texto descriptivo. - Se puede añadir un
ItemListenerpara manejar cambios en el estado de selección. - Se añade el checkbox a un contenedor en la interfaz.
Ejemplo:
1import javax.swing.*;2import java.awt.*;3import java.awt.event.ItemEvent;4import java.awt.event.ItemListener;5
6public class EjemploJCheckBox {7 private JFrame frame;8 private JCheckBox checkBox;9 private JLabel etiqueta;10
11 public EjemploJCheckBox() {12 inicializarComponentes();13 }14
15 private void inicializarComponentes() {16 frame = new JFrame("Ejemplo JCheckBox");17 frame.setSize(300, 200);18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);19 frame.setLocationRelativeTo(null);20 frame.setLayout(new FlowLayout());21
22 checkBox = new JCheckBox("Activar opción");23 etiqueta = new JLabel("Opción desactivada");24
25 checkBox.addItemListener(new ItemListener() {26 @Override27 public void itemStateChanged(ItemEvent e) {28 if (e.getStateChange() == ItemEvent.SELECTED) {29 etiqueta.setText("Opción activada");30 } else {31 etiqueta.setText("Opción desactivada");32 }33 }34 });35
36 frame.add(checkBox);37 frame.add(etiqueta);38 }39
40 public void mostrar() {41 frame.setVisible(true);42 }43
44 public static void main(String[] args) {45 SwingUtilities.invokeLater(() -> {46 EjemploJCheckBox app = new EjemploJCheckBox();47 app.mostrar();48 });49 }50}Información:
- Creamos un
JCheckBoxcon el texto “Activar opción”. - Añadimos un
ItemListenerque actualiza el texto de una etiqueta según el estado del checkbox. - El checkbox y la etiqueta se añaden al frame para su visualización.
JRadioButton
JRadioButton es un componente que representa una opción dentro de un grupo de opciones mutuamente excluyentes.
Se utiliza cuando el usuario debe seleccionar una única opción de un conjunto de alternativas relacionadas.
Uso
- Se crean múltiples instancias de
JRadioButton. - Se agrupan los
JRadioButtonsen unButtonGroup. - Se pueden añadir
ActionListenerspara manejar la selección. - Se añaden los radio buttons a un contenedor en la interfaz.
Ejemplo:
1import javax.swing.*;2import java.awt.*;3import java.awt.event.ActionEvent;4import java.awt.event.ActionListener;5
6public class EjemploJRadioButton {7 private JFrame frame;8 private JRadioButton radioBoton1, radioBoton2, radioBoton3;9 private JLabel etiqueta;10
11 public EjemploJRadioButton() {12 inicializarComponentes();13 }14
15 private void inicializarComponentes() {16 frame = new JFrame("Ejemplo JRadioButton");17 frame.setSize(300, 200);18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);19 frame.setLocationRelativeTo(null);20 frame.setLayout(new FlowLayout());21
22 radioBoton1 = new JRadioButton("Opción 1");23 radioBoton2 = new JRadioButton("Opción 2");24 radioBoton3 = new JRadioButton("Opción 3");25
26 ButtonGroup grupo = new ButtonGroup();27 grupo.add(radioBoton1);28 grupo.add(radioBoton2);29 grupo.add(radioBoton3);30
31 etiqueta = new JLabel("Ninguna opción seleccionada");32
33 ActionListener listener = new ActionListener() {34 @Override35 public void actionPerformed(ActionEvent e) {36 JRadioButton seleccionado = (JRadioButton) e.getSource();37 etiqueta.setText("Seleccionado: " + seleccionado.getText());38 }39 };40
41 radioBoton1.addActionListener(listener);42 radioBoton2.addActionListener(listener);43 radioBoton3.addActionListener(listener);44
45 frame.add(radioBoton1);46 frame.add(radioBoton2);47 frame.add(radioBoton3);48 frame.add(etiqueta);49 }50
51 public void mostrar() {52 frame.setVisible(true);53 }54
55 public static void main(String[] args) {56 SwingUtilities.invokeLater(() -> {57 EjemploJRadioButton app = new EjemploJRadioButton();58 app.mostrar();59 });60 }61}Información:
- Creamos tres
JRadioButtonscon diferentes opciones. - Los agrupamos en un
ButtonGrouppara asegurar que solo uno pueda ser seleccionado a la vez. - Añadimos un
ActionListenercomún que actualiza una etiqueta con la opción seleccionada. - Los radio buttons y la etiqueta se añaden al frame para su visualización.