JList中的多个时间间隔选择

问题描述 投票:0回答:2

我想从JList中有多个选择(“列”)。一旦按下(“导出”)按钮,如何获取JList中所有选定项的String值并将它们放入Strings的array / ArrayList中?

我在构造函数中有这个:

public ColumnList(String[] allColumns) {
    super(new BorderLayout());
    listModel = createListModel(allColumns); // contains all the columns
    list = new JList<String>(listModel);
    list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    list.setSelectedIndex(0);
    list.setVisibleRowCount(5);
    JScrollPane listScrollPane = new JScrollPane(list);
    exportButton = createExportButton(exportString);
}

并且在同一类中是该内部类:

class ExportListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        String columnName = (String) list.getSelectedValue();
        selectedCols.add(columnName); // add to array list
    }
}

现在我知道这行不通。这仅适用于一个选定的值。如何为多项选择做呢?

selection jlist
2个回答
0
投票
class ExportListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        String[] columnsSelected;
        columnsSelected = new String[list.getSelectedValuesList().size()];
        columnsSelected = (list.getSelectedValuesList()).toArray(columnsSelected);      
    }
}

0
投票

在调用JList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)后使用JList.setSelectedIndices(int [])

© www.soinside.com 2019 - 2024. All rights reserved.