Saltearse al contenido

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

  1. Se crea una instancia de JComboBox, generalmente con un array o Vector de opciones.
  2. Se puede añadir un ActionListener para manejar la selección de elementos.
  3. Se añade el combo box a un contenedor en la interfaz.

Ejemplo:

1
import javax.swing.*;
2
import java.awt.*;
3
import java.awt.event.ActionEvent;
4
import java.awt.event.ActionListener;
5
6
public 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
@Override
29
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

  1. Se crea una instancia de JList, generalmente con un array o Vector de opciones.
  2. Se puede configurar el modo de selección (único, múltiple, intervalo).
  3. Se puede añadir un ListSelectionListener para manejar las selecciones.
  4. Normalmente se coloca dentro de un JScrollPane para manejar listas largas.
  5. Se añade al contenedor en la interfaz.

Ejemplo:

1
import javax.swing.*;
2
import javax.swing.event.ListSelectionEvent;
3
import javax.swing.event.ListSelectionListener;
4
import java.awt.*;
5
6
public 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
@Override
31
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 un JScrollPane para manejar listas largas.
  • El scroll pane con la lista y la etiqueta se añaden al frame.