Introduksjon til JList i Java
JList er en svingkomponent som viser en liste over objekter og lar brukeren velge ett eller flere elementer. JList er som ListViews på andre programmeringsspråk der den lar oss representere en liste over elementer.
Definisjon av applikasjonsprogramgrensesnitt (API)
JList er definert i java. svingpakke.
JList er generisk. Dessuten arver den fra java.swing.JComponent, som er en abstrakt klasse som er grunnklassen for alle Swing-komponenter unntatt containere på toppnivå.
- offentlig klasse JList
- utvider JComponent
- implementerer rullbar, tilgjengelig
Som du ser JList implementerer dessuten javax.swing.Scrollable, et grensesnitt som gir en rullebeholder som JScrollPane, og java.swing.Accessible, som er hovedgrensesnittet for tilgjengelighetspakken.
Konstruktører av JList
- JList (): Denne konstruktøren i JList-klassen vil opprette en liste med en skrivebeskyttet, tom modell.
- JList (Array () listedata) : Denne konstruktøren i JList-klassen vil opprette en liste som viser elementene fra arrayen som er spesifisert i parameteren.
- JList (ListModel-datamodell): Denne konstruktøren i JList-klassen vil opprette en liste som viser elementene fra den spesifiserte modellen uten null.
- JList (Data list data): Denne konstruktøren i JList-klassen vil opprette en liste som viser elementene fra vektoren som er spesifisert i parameteren.
Vanlige brukte metoder for JList
- Void addListSelectionListener (ListSelectionListener listener): Denne metoden brukes til å legge til en lytter til listen, som kan brukes til å bli varslet når det blir endret valg i listen som blir gjort.
- Int blir valgtIndex (): Denne metoden brukes til å returnere indeksen for det valgte elementet i listen.
- Int get valgt verdi (): Denne metoden brukes til å returnere verdien til elementet som er valgt i listen.
- ListModel getModel (): Denne metoden brukes til å returnere datamodellen som inneholder elementene i listen i JList-komponenten.
- Void setListData (Object () list data): Denne metoden brukes til å lage en skrivebeskyttet modell fra den gitte rekke objekter i parameteren.
Eksempel på Simple JList in Action
I eksemplet nedenfor vil vi bruke en JList for å kontrollere fargen på panelet. For det første lager vi JList og fyller ut de med de forskjellige fargene, setter listen en JScrollPane for å se alle fargene på listen og legge til en actionlytter på listen basert på hvilken vi setter fargen på bakgrunnspanelet.
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);))
Produksjon:
Legger til data til JList
Vi legger ikke data direkte til JLists. I stedet bruker vi en egen modell. Den modellen vil opprettholde innholdet i listen. Imidlertid, hvis du vil gjengi elementer fra en matrise eller vektor, vil vi bare passere matrisen i vår JList-konstruktør, så vil JList automatisk bygge ListModel for oss. Imidlertid er mesteparten av tiden du vil bruke ListModel hvis du har data fra samlinger. ListModel definerer dessuten flere metoder som vi også kan bruke for å manipulere dataene våre.
Vi kan starte ListModel på følgende måte:
- DefaultListModel df = new DefaultListModel ();
- StandardListModel er definert i javax.swing-pakken.
Eksempel på bruk av StandardListModel
Her i eksemplet nedenfor vil vi lage en JFrame som blir delt opp i to halvdeler horisontalt. Venstre vil inneholde listen over noen elementer, og den høyre halvdelen vil vise den respektive prisen for varene i den tilstøtende listen. For det første vil vi opprette en JFrame, en JList og en StandardListModel, så vil vi fylle modellen med listen over varer og deres respektive priser, sette listen til venstre komponent og priser til høyre komponent, angi størrelsen på rammen og sist rammer logikken for å liste opp riktig pris for en vare.
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;
)
)
)
Produksjon:
Konklusjon - JList i Java
Jlist Class i Java er egnet for å vise objektdata i en liste og kan brukes til å aktivere hendelser på grunnlag av valg av bestemt verdi i listen. Jlist kan brukes til å representere data på en veldig ryddig måte i Java-applikasjoner.
Anbefalte artikler
Dette er en guide til JList i Java. Her diskuterer vi Introduksjon, konstruktører av JList, ofte brukte metoder for JList sammen med eksempler. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–
- JScrollPane i Java
- Betingede uttalelser i JavaScript
- JDialog i Java
- JComboBox i Java
- JLabel i Java
- Flowlayout i Java