JList en Java - Constructores y métodos de uso común de JList

Tabla de contenido:

Anonim

Introducción a JList en Java

JList es un componente de swing que muestra una lista de objetos y permite al usuario seleccionar uno o más elementos. JList es como ListViews en otros lenguajes de programación donde nos permite representar una lista de elementos.

Definición de interfaz de programa de aplicación (API)

JList se define en Java. paquete de columpios.

JList es genérico. Además, hereda de java.swing.JComponent, que es una clase abstracta que es la clase base para todos los componentes de Swing, excepto los contenedores de nivel superior.

  • clase pública JList
  • extiende JComponent
  • implementos desplazables, accesibles

Además, como puede ver, JList implementa javax.swing.Scrollable, una interfaz que proporciona un contenedor de desplazamiento como JScrollPane y java.swing.Accessible, que es la interfaz principal para el paquete de accesibilidad.

Constructores de JList

  1. JList (): este constructor en la clase JList creará una lista con un modelo vacío, de solo lectura.
  2. JList (datos de la lista Array ()) : este constructor en la clase JList creará una lista que mostrará los elementos de la matriz especificada dentro del parámetro.
  3. JList (modelo de datos ListModel): este constructor en la clase JList creará una lista que mostrará los elementos del modelo especificado, no nulo.
  4. JList (datos de la lista de vectores): este constructor en la clase JList creará una lista que mostrará los elementos del vector especificado dentro del parámetro.

Métodos de uso común de JList

  1. VoL addListSelectionListener (escucha ListSelectionListener): este método se usa para agregar un escucha a la lista, que se puede usar para recibir notificaciones cada vez que se realice algún cambio en la selección de la lista.
  2. Int gets selectedIndex (): este método se utiliza para devolver el índice del elemento seleccionado de la lista.
  3. Int obtener el valor seleccionado (): este método se utiliza para devolver el valor del elemento seleccionado en la lista.
  4. ListModel getModel (): este método se utiliza para devolver el modelo de datos que contiene los elementos de la lista en el componente JList.
  5. SetListData nulo (datos de la lista Object ()): este método se utiliza para crear un modelo de solo lectura a partir de la matriz de objetos dada en el parámetro.

Ejemplo de JList simple en acción

En el siguiente ejemplo, utilizaremos una JList para controlar el color del panel. En primer lugar, crearemos JList y los rellenaremos con los diferentes colores, configuraremos la lista en JScrollPane para ver todos los colores de la lista y agregaremos un detector de eventos de acción en la lista en función del cual establecemos el color del panel de fondo.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class JListExample extends JFrame(
private JList list;
private static String() colorNames = ("blue", "green", "yellow", "orange", "red", "black", "grey", "white");
private static Color() colors = (Color.BLUE, Color.GREEN, Color.YELLOW, Color.ORANGE, Color.RED, Color.BLACK, Color.GRAY, Color.WHITE);
public JListExample() (
super("JList Demo Example");
setLayout(new FlowLayout());
list = new JList(colorNames);
list.setVisibleRowCount(5);//number of elements to visible as row in list
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//choose the selection mode in list
add(new JScrollPane(list));
//adding event listener on JList
list.addListSelectionListener(
new ListSelectionListener() (
public void valueChanged(ListSelectionEvent e) (
getContentPane().setBackground(colors(list.getSelectedIndex()));)
));
)public static void main(String() args) (JListExample jl = new JListExample();jl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jl.setSize(300, 300);jl.setVisible(true);))

Salida:

Agregar datos a JList

No agregamos datos directamente a JLists. En cambio, usamos un modelo separado. Ese modelo mantendrá el contenido de la lista. Sin embargo, si desea representar elementos de una matriz o vector, simplemente pasaremos la matriz en nuestro constructor JList y luego JList construirá automáticamente ListModel para nosotros. Sin embargo, la mayoría de las veces desea usar ListModel si tiene datos provenientes de colecciones. Además, ListModel define varios métodos que también podemos usar para manipular nuestros datos.

Podemos iniciar ListModel de la siguiente manera:

  • DefaultListModel df = new DefaultListModel ();
  • DefaultListModel se define en el paquete javax.swing.

Ejemplo para usar DefaultListModel

Aquí, en el ejemplo a continuación, crearemos un JFrame dividido en dos mitades horizontalmente. La izquierda contendrá la lista de algunos artículos y la mitad derecha mostrará el precio respectivo de los artículos en la lista adyacente. Para hacerlo, primero crearemos un JFrame, un JList y un DefaultListModel, luego llenaremos el modelo con la lista de artículos y sus precios respectivos, estableceremos la lista para el componente izquierdo y los precios para el componente derecho, estableceremos el tamaño del marco y en el último marco la lógica para enumerar el precio correcto de un artículo.

import javax.swing.*;
import java.math.BigDecimal;
public class JListExample (
JFrame frame = new JFrame("Storage");
JList list = new JList();
DefaultListModel model = new DefaultListModel();
JLabel label = new JLabel();
JPanel panel = new JPanel();
JSplitPane splitPane = new JSplitPane();
public JListExample() (
list.setModel(model);
model.addElement(new Product("Item1", new BigDecimal("49.00")));
model.addElement(new Product("Item2", new BigDecimal("150")));
model.addElement(new Product("Item3", new BigDecimal("54.5")));
model.addElement(new Product("Item4", new BigDecimal("120.00")));
list.getSelectionModel().addListSelectionListener(e -> (
Product p = list.getSelectedValue();
label.setText(p.getName() + " price is = " + p.getPrice().toPlainString());
));
splitPane.setLeftComponent(new JScrollPane(list));
panel.add(label);
splitPane.setRightComponent(panel);
splitPane.setResizeWeight(0.5); //used to set the way it splits the left and right component
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(splitPane);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setSize(500, 300);
)
public static void main(String() args) (
SwingUtilities.invokeLater(JListExample::new);
)
private class Product (
String name;
BigDecimal price;
public Product(String name, BigDecimal price) (
this.name = name;
this.price = price;
)
public String getName() (
return name;
)
public void setName(String name) (
this.name = name;
)
public BigDecimal getPrice() (
return price;
)
public void setPrice(BigDecimal price) (
this.price = price;
)
@Override
public String toString() (
return name;
)
)
)

Salida:

Conclusión: JList en Java

Jlist Class en Java es adecuado para mostrar datos de objetos en una lista y se puede usar para activar eventos en función de la selección de un valor particular en la lista. Jlist se puede utilizar para representar datos de manera muy ordenada en aplicaciones Java.

Artículos recomendados

Esta es una guía de la JList en Java. Aquí discutimos la Introducción, Constructores de JList, Métodos de uso común de JList junto con ejemplos. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. JScrollPane en Java
  2. Declaraciones condicionales en JavaScript
  3. JDialog en Java
  4. JComboBox en Java
  5. JLabel en Java
  6. Flowlayout en Java