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
ActionListener
para 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
JButton
con el texto “Haz clic aquí”. - Añadimos un
ActionListener
que 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
JCheckBox
con un texto descriptivo. - Se puede añadir un
ItemListener
para 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
JCheckBox
con el texto “Activar opción”. - Añadimos un
ItemListener
que 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
JRadioButtons
en unButtonGroup
. - Se pueden añadir
ActionListeners
para 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
JRadioButtons
con diferentes opciones. - Los agrupamos en un
ButtonGroup
para asegurar que solo uno pueda ser seleccionado a la vez. - Añadimos un
ActionListener
comú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.