JList 中的多区间选择
Multiple Interval Selection in JList
我想从 JList 中进行多项选择 ("columns")。如何获取 JList 中所有选定项目的字符串值,并在按下 ("Export") 按钮后将它们放入字符串的 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 里面是 class:
class ExportListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String columnName = (String) list.getSelectedValue();
selectedCols.add(columnName); // add to array list
}
}
现在我知道这行不通了。这将仅适用于一个选定的值。如何进行多项选择?
class ExportListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String[] columnsSelected;
columnsSelected = new String[list.getSelectedValuesList().size()];
columnsSelected = (list.getSelectedValuesList()).toArray(columnsSelected);
}
}
我可以这样做。
调用JList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
后使用JList.setSelectedIndices(int[])
jList.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
int[] selectIndices = {0, 3};
jList.setSelectedIndices(selectIndices);
我想从 JList 中进行多项选择 ("columns")。如何获取 JList 中所有选定项目的字符串值,并在按下 ("Export") 按钮后将它们放入字符串的 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 里面是 class:
class ExportListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String columnName = (String) list.getSelectedValue();
selectedCols.add(columnName); // add to array list
}
}
现在我知道这行不通了。这将仅适用于一个选定的值。如何进行多项选择?
class ExportListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String[] columnsSelected;
columnsSelected = new String[list.getSelectedValuesList().size()];
columnsSelected = (list.getSelectedValuesList()).toArray(columnsSelected);
}
}
我可以这样做。
调用JList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
后使用JList.setSelectedIndices(int[])jList.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
int[] selectIndices = {0, 3};
jList.setSelectedIndices(selectIndices);