En casi todos los programas, nos encontramos con que se pide al usuario que introduzca un dato, y además un dato de entre una lista de valores posibles, no un dato cualquiera.
La clase JList
constituye un componente lista sobre el que se puede ver y seleccionar uno o varios elementos a la vez. En caso de haber más elementos de los que se pueden visualizar, es posible utilizar un componente JScrollPanel
para que aparezcan barras de desplazamiento.
En los componentes JList
, un modelo code>ListModel representa los contenidos de la lista. Esto significa que los datos de la lista se guardan en una estructura de datos independiente, denominada modelo de la lista. Es fácil mostrar en una lista los elementos de un vector o array de objetos, usando un constructor de JList
que cree una instancia de ListModel
automáticamente a partir de ese vector.
Vemos a continuación un ejemplo parar crear una lista JList
que muestra las cadenas contenidas en el vector info[]:
String[] info = {"Pato", "Loro", "Perro", "Cuervo"};
JList listaDatos = new JList(info);
/* El valor de la propiedad model de JList es un objeto que proporciona una visión de sólo lectura del vector info[].
El método getModel() permite recoger ese modelo en forma de Vector de objetos, y utilizar con los métodos de la clase
Vector, como getElementAt(i), que proporciona el elemento de la posición i del Vector. */
for (int i = 0; i < listaDatos.getModel().getSize(); i++) {
System.out.println(listaDatos.getModel().getElementAt(i));
}