Введение в JList в Java

JList - это компонент свинга, который отображает список объектов и позволяет пользователю выбрать один или несколько элементов. JList похож на ListViews в других языках программирования, где он позволяет нам представлять список элементов.

Определение прикладного программного интерфейса (API)

JList определен в Java. качели пакет.

JList является общим. Более того, он наследуется от java.swing.JComponent, который является абстрактным классом, который является базовым классом для всех компонентов Swing, кроме контейнеров верхнего уровня.

  • публичный класс JList
  • расширяет JComponent
  • реализует Scrollable, Accessible

Кроме того, как вы можете видеть, JList реализует javax.swing.Scrollable, интерфейс, который обеспечивает контейнер прокрутки, такой как JScrollPane, и java.swing.Accessible, который является основным интерфейсом для пакета специальных возможностей.

Конструкторы JList

  1. JList (): этот конструктор в классе JList создаст список с доступной только для чтения пустой моделью.
  2. JList (Array () list data) : этот конструктор в классе JList создаст список, который будет отображать элементы из массива, указанного в параметре.
  3. JList (модель данных ListModel): этот конструктор в классе JList создаст список, который будет отображать элементы из указанной, не нулевой, модели.
  4. JList (данные векторного списка): этот конструктор в классе JList создаст список, в котором будут отображаться элементы из вектора, указанного в параметре.

Обычно используемые методы JList

  1. Void addListSelectionListener (ListSelectionListener listener): этот метод используется для добавления прослушивателя в список, который можно использовать для уведомления, когда есть какие-либо изменения в выбранном списке.
  2. Int получает selectedIndex (): этот метод используется для возврата индекса выбранного элемента списка.
  3. Int get selected value (): Этот метод используется для возврата значения элемента, выбранного в списке.
  4. ListModel getModel (): этот метод используется для возврата модели данных, которая содержит элементы списка в компоненте JList.
  5. Void setListData (Object () list data): этот метод используется для создания модели только для чтения из заданного массива объектов в параметре.

Пример простого JList в действии

В приведенном ниже примере мы будем использовать JList для управления цветом панели. Сначала мы создадим JList и залим его разными цветами, установим список JScrollPane, чтобы увидеть все цвета списка, и добавим прослушиватель событий в список, на основе которого мы устанавливаем цвет панели фона.

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);))

Выход:

Добавление данных в JList

Мы не добавляем данные непосредственно в JLists. Вместо этого мы используем отдельную модель. Эта модель будет поддерживать содержимое списка. Однако, если вы хотите визуализировать элементы из массива или вектора, тогда мы просто передадим массив в нашем конструкторе JList, тогда JList автоматически создаст ListModel для нас. Однако большую часть времени вы хотите использовать ListModel, если у вас есть данные, поступающие из коллекций. Кроме того, ListModel определяет несколько методов, которые мы также можем использовать для манипулирования нашими данными.

Мы можем запустить ListModel следующим образом:

  • DefaultListModel df = new DefaultListModel ();
  • DefaultListModel определяется в пакете javax.swing.

Пример использования DefaultListModel

Здесь, в приведенном ниже примере, мы создадим JFrame, разделенный на две половины по горизонтали. Слева будет отображаться список некоторых предметов, а в правой половине будет отображаться соответствующая цена предметов в соседнем списке. Для этого сначала мы создадим JFrame, JList и DefaultListModel, затем заполним модель списком элементов и их соответствующими ценами, установим список для левого компонента и цены для правого компонента, установим размер фрейма и в последнем кадре логика вывести правильную цену за товар.

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;
)
)
)

Выход:

Вывод - JList в Java

Jlist Class в Java подходит для отображения данных объекта в списке и может использоваться для активации событий на основе выбора определенного значения в списке. Jlist может использоваться для представления данных очень упорядоченным способом в Приложениях Java.

Рекомендуемые статьи

Это руководство к JList в Java. Здесь мы обсуждаем Введение, Конструкторы JList, Часто используемые Методы JList вместе с примерами. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. JScrollPane в Java
  2. Условные выражения в JavaScript
  3. JDialog в Java
  4. JComboBox в Java
  5. JLabel на Java
  6. Flowlayout в Java