JList w Javie - Konstruktory i powszechnie stosowane metody JList

Spisie treści:

Anonim

Wprowadzenie do JList w Javie

JList to komponent swing, który wyświetla listę obiektów i pozwala użytkownikowi wybrać jeden lub więcej elementów. JList jest jak ListViews w innych językach programowania, gdzie pozwala nam reprezentować listę elementów.

Definicja interfejsu programu aplikacji (API)

JList jest zdefiniowany w java. pakiet huśtawka.

JList jest ogólny. Ponadto dziedziczy po java.swing.JComponent, który jest klasą abstrakcyjną, która jest klasą bazową dla wszystkich składników Swing z wyjątkiem kontenerów najwyższego poziomu.

  • JList klasy publicznej
  • rozszerza JComponent
  • implementuje Przewijalny, Dostępny

Ponadto, jak widać, JList implementuje javax.swing.Scrollable, interfejs zapewniający przewijany kontener, taki jak JScrollPane i java.swing.Accessible, który jest głównym interfejsem pakietu ułatwień dostępu.

Konstruktory JList

  1. JList (): Ten konstruktor w klasie JList utworzy listę z pustym modelem tylko do odczytu.
  2. JList (dane listy Array ()) : Ten konstruktor w klasie JList utworzy listę, która wyświetli elementy z tablicy określonej w parametrze.
  3. JList (model danych ListModel): Ten konstruktor w klasie JList utworzy listę, która wyświetli elementy z określonego modelu no-null.
  4. JList (dane listy wektorów): Ten konstruktor w klasie JList utworzy listę, która wyświetli elementy z wektora określonego w parametrze.

Często używane metody JList

  1. Void addListSelectionListener (detektor ListSelectionListener): Ta metoda służy do dodawania detektora do listy, za pomocą którego można powiadamiać o każdej zmianie wyboru na liście.
  2. Int gets selectedIndex (): Ta metoda służy do zwrócenia indeksu wybranego elementu listy.
  3. Int get selected value (): Ta metoda służy do zwrócenia wartości elementu wybranego na liście.
  4. ListModel getModel (): Ta metoda służy do zwracania modelu danych, który przechowuje elementy listy w składniku JList.
  5. Void setListData (Object list) data: Ta metoda służy do utworzenia modelu tylko do odczytu z podanej tablicy obiektów w parametrze.

Przykład prostej listy JList w akcji

W poniższym przykładzie użyjemy listy JList do sterowania kolorem panelu. Najpierw stworzymy JList i wypełnimy różnymi kolorami, ustawimy listę na JScrollPane, aby zobaczyć wszystkie kolory na liście i dodamy detektor zdarzeń akcji na liście, na podstawie którego ustawimy kolor panelu tła.

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

Wynik:

Dodawanie danych do JList

Nie dołączamy danych bezpośrednio do JLists. Zamiast tego używamy osobnego modelu. Ten model zachowa zawartość listy. Jeśli jednak chcesz renderować elementy z tablicy lub wektora, przekażemy tablicę do naszego konstruktora JList, a następnie JList automatycznie zbuduje dla nas ListModel. Jednak przez większość czasu chcesz używać ListModel, jeśli masz dane pochodzące z kolekcji. Ponadto ListModel definiuje kilka metod, których możemy również używać do manipulowania naszymi danymi.

Możemy zainicjować ListModel w następujący sposób:

  • DefaultListModel df = new DefaultListModel ();
  • DefaultListModel jest zdefiniowany w pakiecie javax.swing.

Przykład użycia DefaultListModel

W poniższym przykładzie utworzymy ramkę JFrozdzieloną poziomo na dwie połowy. Po lewej stronie będzie znajdować się lista niektórych przedmiotów, a prawa połowa pokaże odpowiednią cenę przedmiotów na sąsiedniej liście. W tym celu najpierw stworzymy JFrame, JList i DefaultListModel, następnie wypełnimy model listą elementów i ich odpowiednimi cenami, ustawimy listę na lewy komponent i ceny na prawy komponent, ustawimy rozmiar ramki i w końcu obramuj logikę, aby podać prawidłową cenę za przedmiot.

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

Wynik:

Wniosek - JList w Javie

Klasa Jlist w Javie nadaje się do wyświetlania danych obiektowych na liście i może być używana do aktywowania zdarzeń na podstawie wyboru określonej wartości z listy. Jlist może być używany do bardzo uporządkowanej reprezentacji danych w aplikacjach Java.

Polecane artykuły

Jest to przewodnik po JList w Javie. Tutaj omawiamy Wprowadzenie, Konstruktory JList, Często używane metody JList wraz z przykładami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. JScrollPane w Javie
  2. Instrukcje warunkowe w JavaScript
  3. JDialog w Javie
  4. JComboBox w Javie
  5. JLabel w Javie
  6. Flowlayout w Javie