JList-选择多个项目

| 当我想在
JList
中自动选择多个值时,在
JList
中遇到这种this0ѭ方法的问题,但它仍然只选择了一个。有办法吗?
 String[] items = { \"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\" };
      final JList theList = new JList(items);
      theList.setSelectedValue(\"Item 1\",true);
      theList.setSelectedValue(\"Item 2\",true);
此代码仅显示
Item 2
。     
已邀请:
        呼叫
JList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
后使用
JList.setSelectedIndices(int[])
。 例如。
import javax.swing.*;
import java.io.*;
import java.util.ArrayList;
class MultiSelectList {
    public static void main(String[] args) throws Exception {
        File f = new File(\"MultiSelectList.java\");
        InputStream is = new FileInputStream(f);
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        final ArrayList<String> lines = new ArrayList<String>();
        String line = br.readLine();
        while (line!=null) {
            lines.add(line);
            line = br.readLine();
        }
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JList list = new JList(lines.toArray());
                list.setSelectionMode(
                    ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
                int[] select = {19, 20, 22};
                list.setSelectedIndices(select);
                JOptionPane.showMessageDialog(null, new JScrollPane(list));
            }
        });
    }
}
屏幕截图     
        
list.getSelectionModel().setSelectionInterval(...);
或者如果选择不是连续的,那么您需要使用多个
list.getSelectionModel().addSelectionInterval(...);
    
        当您使用NetBeans GUI编辑器时,可以自定义为ѭ1生成的
Post-Creation Code
,如下所示。     
        
import javax.swing.*;
import java.io.*;
import java.util.ArrayList;

class MultiSelectList {
    public static void main(String[] args) throws Exception {
        File f = new File(\"MultiSelectList.java\");
        InputStream is = new FileInputStream(f);
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        final ArrayList<String> lines = new ArrayList<String>();
        String line = br.readLine();
        while (line!=null) {
            lines.add(line);
            line = br.readLine();
        }
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JList list = new JList(lines.toArray());
                list.setSelectionMode(
                    ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
                int[] select = {19, 20, 22};
                list.setSelectedIndices(select);
                JOptionPane.showMessageDialog(null, new JScrollPane(list));
            }
        });
    }
}
    

要回复问题请先登录注册