JList i Java - Konstruktører og almindeligt anvendte metoder til JList

Indholdsfortegnelse:

Anonim

Introduktion til JList i Java

JList er en svingkomponent, der viser en liste over objekter og giver brugeren mulighed for at vælge et eller flere elementer. JList er som ListViews på andre programmeringssprog, hvor det giver os mulighed for at repræsentere en liste over poster.

Definition af Application Program Interface (API)

JList er defineret i java. sving pakke.

JList er generisk. Derudover arver den fra java.swing.JComponent, som er en abstrakt klasse, der er baseklassen for alle Swing-komponenter undtagen containere på øverste niveau.

  • offentlig klasse JList
  • udvider JComponent
  • implementerer rullbar, tilgængelig

Som du kan se JList implementerer desuden javax.swing.Scrollable, en grænseflade, der giver en rullecontainer som JScrollPane, og java.swing.Accessible, som er hovedgrænsefladen for tilgængelighedspakken.

Konstruktører af JList

  1. JList (): Denne konstruktør i JList-klassen opretter en liste med en read-only, tom model.
  2. JList (Array () listedata) : Denne konstruktør i JList-klassen opretter en liste, der viser elementerne fra den matrix, der er specificeret inden for parameteren.
  3. JList (ListModel-datamodel): Denne konstruktør i JList-klassen opretter en liste, der viser elementerne fra den specificerede, ingen-null-model.
  4. JList (Vector list data): Denne konstruktør i JList klassen opretter en liste, der viser elementerne fra den vektor, der er specificeret inden for parameteren.

Almindeligt anvendte metoder til JList

  1. Void addListSelectionListener (ListSelectionListener listener): Denne metode bruges til at tilføje en lytter til listen, som kan bruges til at blive underrettet, når der sker ændringer i valget på listen, der foretages.
  2. Int bliver valgtIndex (): Denne metode bruges til at returnere indekset for det valgte element på listen.
  3. Int get valgt værdi (): Denne metode bruges til at returnere værdien af ​​det valgte element på listen.
  4. ListModel getModel (): Denne metode bruges til at returnere datamodellen, der indeholder elementerne på listen i JList-komponenten.
  5. Void setListData (Objekt () -listedata): Denne metode bruges til at oprette en skrivebeskyttet model fra den givne række objekter i parameteren.

Eksempel på Simple JList in Action

I nedenstående eksempel bruger vi en JList til at kontrollere panelets farve. For det første laver vi JList og udfylder de med de forskellige farver, sætter listen en JScrollPane for at se alle farverne på listen og tilføje en action-begivenhedslytter på listen baseret på hvilken vi sætter farven på baggrundspanelet.

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

Produktion:

Føjelse af data til JList

Vi føjer ikke data direkte til JLists. I stedet bruger vi en separat model. Denne model opretholder indholdet på listen. Hvis du imidlertid vil gengive emner fra en matrix eller en vektor, vil vi bare videregive matrixen i vores JList-konstruktør, så vil JList automatisk oprette ListModel for os. Men det meste af tiden, du vil bruge ListModel, hvis du har data fra samlinger. Desuden definerer ListModel flere metoder, som vi også kan bruge til at manipulere vores data.

Vi kan starte ListModel på følgende måde:

  • DefaultListModel df = new DefaultListModel ();
  • StandardListModel er defineret i javax.swing-pakken.

Eksempel til brug af StandardListModel

Her i nedenstående eksempel vil vi oprette en JFrame, der opdeles i to halvdele horisontalt. Venstre vil indeholde listen over nogle varer, og den højre halvdel viser den respektive pris for varerne i den tilstødende liste. For at gøre det først opretter vi en JFrame, en JList og en StandardListModel, så udfylder vi modellen med listen over varer og deres respektive priser, indstiller listen til venstre komponent og priser til højre komponent, indstiller størrelsen på rammen og sidst rammer logikken for at liste den korrekte 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;
)
)
)

Produktion:

Konklusion - JList i Java

Jlist Class i Java er velegnet til at vise objektdata på en liste og kan bruges til at aktivere begivenheder på grundlag af valget af en bestemt værdi på listen. Jlist kan bruges til at repræsentere data på en meget ordnet måde i Java-applikationer.

Anbefalede artikler

Dette er en guide til JList i Java. Her diskuterer vi introduktionen, konstruktører af JList, almindeligt anvendte metoder til JList sammen med eksempler. Du kan også gennemgå vores andre foreslåede artikler for at lære mere–

  1. JScrollPane i Java
  2. Betingede erklæringer i JavaScript
  3. JDialog i Java
  4. JComboBox i Java
  5. JLabel i Java
  6. Flowlayout i Java