Решено: javafx как да получите избрания индекс на избрания елемент в изглед на списък

Последна актуализация: 09/11/2023
Автор: Java SourceTrail

как да получите избрания индекс на избрания елемент в изглед на списък В днешния свят на забързани уеб приложения и потребителски интерфейси често срещан компонент, който срещаме в мобилните и уеб приложенията, е ListView. ListView е широко използван UI компонент, който показва списък с елементи по начин, който може да се превърта. Един от най-честите въпроси, свързани с ListView, е как да получите избрания индекс на избрания елемент. В тази статия ще проучим решението на този проблем, заедно с задълбочен анализ и стъпка по стъпка обяснение на необходимия Java код.

За да разрешим този проблем, ще използваме езика за програмиране Java и ще работим със свързаните с него библиотеки и UI компоненти. Ще разгледаме внедряването на кода, обсъждайки различните функции и библиотеки, включени в процеса. До края на тази статия ще придобиете дълбоко разбиране за това как да извлечете избрания индекс от ListView в Java.

Компоненти на Java Swing и ListView

Java Swing е набор от Java библиотеки, предоставящи GUI (графичен потребителски интерфейс) и други UI компоненти за Java приложения. Swing предоставя различни UI компоненти, наречени джаджи които можете да използвате във вашите приложения, като бутони, етикети, текстови полета и ListView. Компонентът ListView в Java Swing е известен като JList.

Сега нека се потопим в основния ни проблем: получаване на избрания индекс на избрания елемент от ListView.

import javax.swing.*;
import java.awt.event.*;

public class ListViewExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("ListView Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);

        DefaultListModel<String> listModel = new DefaultListModel<>();
        listModel.addElement("Item 1");
        listModel.addElement("Item 2");
        listModel.addElement("Item 3");

        JList<String> listView = new JList<>(listModel);
        JScrollPane scrollPane = new JScrollPane(listView);

        listView.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                if (!e.getValueIsAdjusting()) {
                    int selectedIndex = listView.getSelectedIndex();
                    System.out.println("Selected index: " + selectedIndex);
                }
            }
        });

        frame.getContentPane().add(scrollPane);
        frame.setVisible(true);
    }
}

В кода по-горе първо импортираме необходимите библиотеки на Java Swing и класовете за обработка на събития. След това създаваме прост JFrame с a JList компонент за създаване на нашия ListView.

Обработка на събития и ListSelectionListener

За да получим избрания индекс от JList, трябва да внедрим манипулатор на събития. В Java Swing обработката на събития се извършва чрез концепцията за слушателите. Слушателите са Java интерфейси, които дефинират методи за обработка на конкретни събития. В нашия случай използваме ListSelectionListener интерфейс за обработка на събитието за избор на списък.

Интерфейсът ListSelectionListener има един метод, извикан valueChanged(ListSelectionEvent e). Този метод се извиква всеки път, когато потребител избере или премахне избора на елемент от списък в ListView. В метода valueChanged първо проверяваме дали процесът на коригиране на стойността е завършен с e.getValueIsAdjusting() за да избегнете дублиране на събития, и след това извлечете избрания индекс с помощта на listView.getSelectedIndex().

След внедряване на обработката на събития, избраният индекс на избрания елемент се отпечатва на конзолата, когато потребител щракне върху елемент в ListView.

В заключение, ние преминахме през процеса на получаване на избрания индекс от ListView в Java, използвайки компонента JList на Java Swing и внедрявайки обработка на събития чрез интерфейса ListSelectionListener. Това подробно обяснение, заедно с включените библиотеки и функции, ще се окаже полезно при справяне с подобни проблеми и обогатяване на познанията ви по програмиране на Java.

Подобни публикации: