Componentes de Selección en Swing
Componentes de selección
Los componentes de selección en Swing permiten al usuario elegir una o varias opciones de un conjunto predefinido.
JComboBox
JComboBox
es un componente que combina un botón o campo editable con una lista desplegable.
Se utiliza para permitir al usuario seleccionar un elemento de una lista predefinida de opciones.
Uso
- Se crea una instancia de
JComboBox
, generalmente con un array oVector
de opciones. - Se puede añadir un
ActionListener
para manejar la selección de elementos. - Se añade el combo box 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 EjemploJComboBox {7 private JFrame frame;8 private JComboBox<String> comboBox;9 private JLabel etiqueta;10
11 public EjemploJComboBox() {12 inicializarComponentes();13 }14
15 private void inicializarComponentes() {16 frame = new JFrame("Ejemplo JComboBox");17 frame.setSize(300, 200);18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);19 frame.setLocationRelativeTo(null);20 frame.setLayout(new FlowLayout());21
22 String[] opciones = {"Rojo", "Verde", "Azul"};23 comboBox = new JComboBox<>(opciones);24
25 etiqueta = new JLabel("Selección: ninguna");26
27 comboBox.addActionListener(new ActionListener() {28 @Override29 public void actionPerformed(ActionEvent e) {30 String seleccionado = (String) comboBox.getSelectedItem();31 etiqueta.setText("Selección: " + seleccionado);32 }33 });34
35 frame.add(comboBox);36 frame.add(etiqueta);37 }38
39 public void mostrar() {40 frame.setVisible(true);41 }42
43 public static void main(String[] args) {44 SwingUtilities.invokeLater(() -> {45 EjemploJComboBox app = new EjemploJComboBox();46 app.mostrar();47 });48 }49}
Información:
- Creamos un
JComboBox
con un array de opciones de colores. - Añadimos un
ActionListener
que actualiza una etiqueta con el color seleccionado. - El combo box y la etiqueta se añaden al frame para su visualización.
JList
JList
es un componente que muestra una lista de elementos de la cual el usuario puede seleccionar uno o varios.
Se utiliza para presentar una lista de opciones al usuario, permitiendo selección única o múltiple.
Uso
- Se crea una instancia de
JList
, generalmente con un array oVector
de opciones. - Se puede configurar el modo de selección (único, múltiple, intervalo).
- Se puede añadir un
ListSelectionListener
para manejar las selecciones. - Normalmente se coloca dentro de un
JScrollPane
para manejar listas largas. - Se añade al contenedor en la interfaz.
Ejemplo:
1import javax.swing.*;2import javax.swing.event.ListSelectionEvent;3import javax.swing.event.ListSelectionListener;4import java.awt.*;5
6public class EjemploJList {7 private JFrame frame;8 private JList<String> lista;9 private JLabel etiqueta;10
11 public EjemploJList() {12 inicializarComponentes();13 }14
15 private void inicializarComponentes() {16 frame = new JFrame("Ejemplo JList");17 frame.setSize(300, 200);18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);19 frame.setLocationRelativeTo(null);20 frame.setLayout(new BorderLayout());21
22 String[] elementos = {"Elemento 1", "Elemento 2", "Elemento 3", "Elemento 4", "Elemento 5"};23 lista = new JList<>(elementos);24 lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);25
26 JScrollPane scrollPane = new JScrollPane(lista);27 etiqueta = new JLabel("Selección: ninguna");28
29 lista.addListSelectionListener(new ListSelectionListener() {30 @Override31 public void valueChanged(ListSelectionEvent e) {32 if (!e.getValueIsAdjusting()) {33 String seleccionado = lista.getSelectedValue();34 etiqueta.setText("Selección: " + seleccionado);35 }36 }37 });38
39 frame.add(scrollPane, BorderLayout.CENTER);40 frame.add(etiqueta, BorderLayout.SOUTH);41 }42
43 public void mostrar() {44 frame.setVisible(true);45 }46
47 public static void main(String[] args) {48 SwingUtilities.invokeLater(() -> {49 EjemploJList app = new EjemploJList();50 app.mostrar();51 });52 }53}
Información:
- Creamos un
JList
con un array de elementos. - Configuramos el modo de selección a selección única.
- Añadimos un
ListSelectionListener
que actualiza una etiqueta con el elemento seleccionado. - Colocamos el
JList
dentro de unJScrollPane
para manejar listas largas. - El scroll pane con la lista y la etiqueta se añaden al frame.