Введение в 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
- JList (): этот конструктор в классе JList создаст список с доступной только для чтения пустой моделью.
- JList (Array () list data) : этот конструктор в классе JList создаст список, который будет отображать элементы из массива, указанного в параметре.
- JList (модель данных ListModel): этот конструктор в классе JList создаст список, который будет отображать элементы из указанной, не нулевой, модели.
- JList (данные векторного списка): этот конструктор в классе JList создаст список, в котором будут отображаться элементы из вектора, указанного в параметре.
Обычно используемые методы JList
- Void addListSelectionListener (ListSelectionListener listener): этот метод используется для добавления прослушивателя в список, который можно использовать для уведомления, когда есть какие-либо изменения в выбранном списке.
- Int получает selectedIndex (): этот метод используется для возврата индекса выбранного элемента списка.
- Int get selected value (): Этот метод используется для возврата значения элемента, выбранного в списке.
- ListModel getModel (): этот метод используется для возврата модели данных, которая содержит элементы списка в компоненте JList.
- 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 вместе с примерами. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -
- JScrollPane в Java
- Условные выражения в JavaScript
- JDialog в Java
- JComboBox в Java
- JLabel на Java
- Flowlayout в Java