JList.setSelectionMode()不起作用?

    import javax.swing.*;
    import javax.swing.event.ListSelectionListener;
    import javax.swing.event.ListSelectionEvent;
    
    class Ty{
        public static void main(String arr[]){
            String str[]={"Human","Element","Air","Animal","Plant"};
            JList<String> jlist=new JList<String>(str);
            jlist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
            //setSelectionMode()无论设置哪个参数都和没有进行设置一样,毫无作用。
            jlist.addListSelectionListener(new ListSelectionListener(){
                public void valueChanged(ListSelectionEvent e){
                    System.out.println(str[((JList)e.getSource()).getSelectedIndex()]);
                    }
                });
            JScrollPane jsp=new JScrollPane(jlist);
            JFrame jframe=new JFrame();
            jframe.add(jsp);
            jframe.setSize(250,150);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jframe.setVisible(true);
            }
        }

到底是哪里出现了问题?顺便一提,用鼠标对JList的项目进行选择时,mouseDown会触发一次valueChanged(),mouseUp也会触发一次valuechanged(),也就是click一次会触发valueChanged()方法两次,这是正常的吗?

阅读 2.5k
1 个回答
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题