Увод у ЈЛист на Јави
ЈЛист је свинг компонента која приказује списак објеката и омогућава кориснику да одабере једну или више ставки. ЈЛист је као ЛистВиевс у другим програмским језицима где нам омогућава да представљамо листу ставки.
Дефиниција интерфејса апликативног програма (АПИ)
ЈЛист је дефинисан у јави. љуљачки пакет.
ЈЛист је генерички. Штавише, он наслеђује од јава.свинг.ЈЦомпонент, који је апстрактна класа која је основна класа за све Свинг компоненте осим контејнера највишег нивоа.
- јавна класа ЈЛист
- проширује ЈЦомпонент
- реализује Сцроллабле, Аццессибле
Штавише, као што видите, ЈЛист имплементира јавак.свинг.Сцроллабле, интерфејс који пружа померљиви контејнер попут ЈСцроллПане и јава.свинг.Аццессибле, који је главни интерфејс за пакет приступачности.
Конструктори ЈЛиста
- ЈЛист (): Овај конструктор у класи ЈЛист створиће листу са моделом који је само за читање, празан.
- Подаци са листе ЈЛист (Арраи ()) : Овај Конструктор у класи ЈЛист створиће листу која ће приказати елементе из низа наведеног у параметру.
- ЈЛист (ЛистМодел модел података): Овај Конструктор у класи ЈЛист створиће листу која ће приказати елементе из наведеног, не-нулл модела.
- ЈЛист (Подаци векторске листе): Овај Конструктор у класи ЈЛист створиће листу која ће приказати елементе из вектора наведеног у параметру.
Обично коришћене методе ЈЛист-а
- Поништи аддЛистСелецтионЛистенер (листеСелецтионЛистенер листенер): Ова метода се користи за додавање слушаоца на листу, која се може обавестити кад год се промена избора у листи направи.
- Инт добија селецтедИндек (): Ова метода се користи за враћање индекса изабране ставке листе.
- Инт гет селецтед валуе (): Ова метода се користи за враћање вредности елемента одабраног у листи.
- ЛистМодел гетМодел (): Ова метода се користи за враћање модела података који садржи ставке листе у ЈЛист Цомпонент.
- Воид сетЛистДата (Подаци листе објеката): Ова метода се користи за креирање модела само за читање из датог низа објеката у параметру.
Пример једноставних ЈЛиста на делу
У следећем примеру користићемо ЈЛист за контролу боје панела. Прво ћемо направити ЈЛист и попунити са различитим бојама, поставити листу ЈСцроллПане да бисмо видели све боје листе и на листу додати слушатеља акционог догађаја на основу којег постављамо боју позадинске плоче.
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);))
Излаз:
Додавање података у ЈЛист
Не додајемо податке директно на ЈЛисте. Уместо тога, користимо посебан модел. Тај модел ће задржати садржај листе. Међутим, ако желите приказати ставке из низа или вектора, тада ћемо само прослиједити низ у нашем конструктору ЈЛист, а затим ће ЈЛист аутоматски саставити ЛистМодел за нас. Међутим, већину времена желите да користите ЛистМодел ако имате податке који долазе из колекција. Штавише, ЛистМодел дефинише неколико метода које такође можемо користити за манипулацију нашим подацима.
ЛистМодел можемо иницирати на следећи начин:
- ДефаултЛистМодел дф = нови ДефаултЛистМодел ();
- ДефаултЛистМодел је дефинисан у пакету јавак.свинг.
Пример за коришћење ДефаултЛистМодел
Овде у доњем примеру ћемо створити ЈФраме подељен на две половине водоравно. Лева ће садржати листу неких предмета, а десна половина ће приказати одговарајућу цену предмета на суседној листи. Да бисмо то учинили прво ћемо креирати ЈФраме, ЈЛист и ДефаултЛистМодел, затим ћемо модел попунити списком ставки и њиховим одговарајућим ценама, поставити листу на леву компоненту и цене на десну компоненту, подесити величину оквира и на крају кад је логика да се наведе тачна цена за један предмет.
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;
)
)
)
Излаз:
Закључак - ЈЛист на Јави
Јлист класа на Јави погодна је за приказивање података објекта на листи и може се користити за активирање догађаја на основу одабира одређене вредности на листи. Јлист се може користити за представљање података на веома уредан начин у Јава апликацијама.
Препоручени чланци
Ово је водич за ЈЛист на Јави. Овдје разговарамо о Уводу, конструкторима ЈЛиста, уобичајеним методама ЈЛиста заједно с примјерима. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -
- ЈСцроллПане на Јави
- Условне изјаве у ЈаваСцрипт-у
- ЈДиалог на Јави
- ЈЦомбоБок на Јави
- ЈЛабел на Јави
- Фловлаиоут у Јави