JList на Java - Конструктори и често използвани методи на JList

Съдържание:

Anonim

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

JList е swing компонент, който показва списък на обекти и позволява на потребителя да избира един или повече елементи. JList е като ListViews в други езици за програмиране, където ни позволява да представим списък с елементи.

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

JList е определен в java. пакет люлка.

JList е родово. Освен това той наследява от java.swing.JComponent, който е абстрактен клас, който е базовият клас за всички компоненти на Swing, с изключение на контейнерите от най-високо ниво.

  • публичен клас JList
  • разширява JComponent
  • изпълнява превъртане, достъпно

Освен това, както можете да видите, JList реализира javax.swing.Scrollable, интерфейс, който осигурява превъртащ се контейнер като JScrollPane и java.swing.Accessible, който е основният интерфейс за пакета за достъпност.

Конструктори на JList

  1. JList (): Този конструктор в класа JList ще създаде списък с модел само за четене, празен.
  2. JList (данни от списъка Array ()) : Този конструктор в клас JList ще създаде списък, който ще показва елементите от масива, посочен в параметъра.
  3. JList (Модел на данни от ListModel): Този конструктор в класа JList ще създаде списък, който ще показва елементите от посочения, ненулев модел.
  4. JList (Данни от векторен списък): Този конструктор в класа JList ще създаде списък, който ще показва елементите от вектора, посочен в параметъра.

Често използвани методи на JList

  1. Невалиден addListSelectionListener (ListSelectionListener слушател): Този метод се използва за добавяне на слушател към списъка, който може да се използва за известяване, когато има промяна в селекцията в списъка, който се прави.
  2. Int получава selectedIndex (): Този метод се използва за връщане на индекса на избрания елемент от списъка.
  3. Int get selected value (): Този метод се използва за връщане на стойността на елемента, избран в списъка.
  4. ListModel getModel (): Този метод се използва за връщане на модела данни, който съдържа елементите от списъка в JList Component.
  5. Void setListData (данни от списъка Object ()): Този метод се използва за създаване на модел само за четене от дадения масив от обекти в параметъра.

Пример за прост 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 в Java е подходящ за показване на данни за обекти в списък и може да се използва за активиране на събития въз основа на избора на определена стойност в списъка. Jlist може да се използва за представяне на данни по много подреден начин в Java приложения.

Препоръчителни статии

Това е ръководство за JList на Java. Тук обсъждаме Въведение, конструктори на JList, често използвани методи на JList, заедно с примери. Можете също да прегледате и другите ни предложени статии, за да научите повече -

  1. JScrollPane на Java
  2. Условни изявления в JavaScript
  3. JDialog на Java
  4. JComboBox на Java
  5. JLabel на Java
  6. Разход на потоци в Java